Systems and methods for estimating vehicle locations using ultra wideband and global navigation satellite system signals

ABSTRACT

Described herein are techniques for determining motion characteristics of trains traveling along a train track. In some embodiments, a processor may determine an estimated position of a train using an observed position obtained using one or more UWB antennas and an observed position obtained using one or more GNSS receivers. In some embodiments, a processor may access information specifying a geometry of a train track and determining the position of a train along the train track using an observed position determined using one or more UWB antennas and/or GNSS receiver(s) and the information specifying the geometry of the train track. In some embodiments, a processor may determine estimated positions of a train using the geometry of the train track and at least one observation of the train obtained using one or more positioning devices and select the position of the train from among the estimated positions.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority under 35 U.S.C. § 119(e) to U.S.Provisional Application Ser. No. 63/326,130, filed Mar. 31, 2022, underAttorney Docket No.: H0908.70091US00, and entitled “SYSTEMS AND METHODSFOR ESTIMATING VEHICLE LOCATIONS,” which is incorporated by reference inits entirety herein.

BACKGROUND

Train systems, such as urban subway systems, employ train controlmechanisms to facilitate the safe movement of trains about the varioustrain tracks of the train system. To prevent collisions between trainsmoving along the same track, conventional train control systems monitorsegments of the track to ensure that only a single train is travelingwithin any particular segment.

SUMMARY

Some embodiments of the technology described herein relate to a systemfor determining a position of a train traveling along a train track, thesystem comprising at least one ultra-wideband (UWB) antenna configuredto transmit and/or receive at least one UWB signal to and/or from atleast one anchor node positioned proximate the train track, at least oneglobal navigation satellite system (GNSS) receiver configured to receiveat least one GNSS signal, and at least one processor configured todetermine at least one first observed position of the train along thetrain track using an arrival time of the at least one UWB signal,determine at least one second observed position of the train along thetrain track using at least one GNSS signal received by the at least oneGNSS receiver, and determine an estimated position of the train alongthe train track using the at least one first observed position and theat least one second observed position of the train along the track.

In some embodiments, the at least one processor is further configured todetermine at least one distance between the at least one UWB antenna andthe at least one anchor node using the arrival time of the at least oneUWB signal. In some embodiments, the at least one UWB antenna isconfigured to transmit a first UWB signal of the at least one UWB signalto the at least one anchor node, the at least one UWB antenna isconfigured to receive a second UWB signal of the at least one UWB signalfrom the at least one anchor node, and the at least one processor isconfigured to determine the at least one distance using a transmit timeof the first UWB signal and an arrival time of the second UWB signal.

In some embodiments, the system further comprises at least one inertialmeasurement unit (IMU) configured to generate IMU data responsive tomovement of the train along the train track, and the at least oneprocessor is configured to determine the estimated position of the trainalong the train track further by using the IMU data.

In some embodiments the at least one processor is configured todetermine the estimated position of the train along the train track byexecuting a recursive state estimator. In some embodiments, therecursive state estimator comprises at least one Kalman filter and/or atleast one Kalman smoother. In some embodiments, the at least oneprocessor is configured to determine the position of the train along thetrack at least in part by providing the at least one first observedposition and the at least one second observed position along the traintrack as input to the recursive state estimator.

In some embodiments, the at least one processor is configured to executea bank of recursive state estimators that includes the recursive stateestimator. In some embodiments, the bank of recursive state estimatorscomprises a bank of Kalman filters. In some embodiments, the at leastone second observed position comprises a first observed train position,and the at least one processor is configured to determine the estimatedposition of the train along the train track at least in part bydetermining whether to update any of the Kalman filters in the bank ofKalman filters using the first observed train position and, when the atleast one processor determines that at least one Kalman filter in thebank of Kalman filters is to be updated, providing the first observedtrain position as input to the at least one Kalman filter and updatingat least one respective state of the at least one Kalman filter usingthe first observed train position. In some embodiments, when the atleast one processor determines not to update any of the Kalman filtersin the bank of Kalman filters using the first observed train position,the at least one processor is configured to add and initialize a newKalman filter in the bank of Kalman filters and provide the firstobserved train position as input to the new Kalman filter.

In some embodiments, the bank of Kalman filters comprises a first Kalmanfilter, and the at least one processor is configured to determinewhether to update any of the Kalman filters in the bank of Kalmanfilters at least in part by determining whether to update the firstKalman filter using the first observed train position, and determinewhether to update the first Kalman filter at least in part bydetermining a measure of consistency between a position of the trainestimated by the first Kalman filter and the first observed trainposition. In some embodiments, the measure of consistency between theposition of the train estimated by the first Kalman filter and the firstobserved train position is a measure of distance between the position ofthe train estimated by the first Kalman filter and the first observedtrain position. In some embodiments, the measure of consistency betweenthe position of the train estimated by the first Kalman filter and thefirst observed train position is a likelihood of observing the firstobserved train position according to the state estimated by the firstKalman filter.

In some embodiments, the at least one processor is configured todetermine the at least one first observed position of the train alongthe track further by integrating the at least one first observedposition with a geometry of the train track. In some embodiments the atleast one processor is configured to determine the at least one secondobserved position of the train further by determining whether the atleast one second observed position is RF visible using the at least oneUWB antenna and/or the at least one GNSS receiver.

Some embodiments of the technology described herein relate to a methodof determining a position of a train traveling along a train track, themethod comprising transmitting and/or receiving, using at least oneultra-wideband (UWB) antenna, at least one UWB signal to and/or from atleast one anchor node positioned proximate the train track, receiving,using at least one global navigation satellite system (GNSS) receiver,at least one GNSS signal, determining, by at least one processor, atleast one first observed position of the train along the train trackusing an arrival time of the at least one UWB signal, determining, bythe at least one processor, at least one second observed position of thetrain along the train track using at least one GNSS signal received bythe at least one GNSS receiver, and determining, by the at least oneprocessor, an estimated position of the train along the train trackusing the at least one first observed position and the at least onesecond observed position of the train along the track.

Some embodiments of the technology described herein relate to anon-transitory computer-readable medium having stored thereoninstructions that, when executed by at least one processor, cause the atleast one processor to perform a method of determining a position of atrain traveling along a train track, the method comprising transmittingand/or receiving, using at least one ultra-wideband (UWB) antenna, atleast one UWB signal to and/or from at least one anchor node positionedproximate the train track, receiving, using at least one globalnavigation satellite system (GNSS) receiver, at least one GNSS signal,determining, by the at least one processor, at least one first observedposition of the train along the train track using an arrival time of theat least one UWB signal, determining, by the at least one processor, atleast one second observed position of the train along the train trackusing at least one GNSS signal received by the at least one GNSSreceiver, and determining, by the at least one processor, an estimatedposition of the train along the train track using the at least one firstobserved position and the at least one second observed position of thetrain along the track.

Some embodiments of the technology described herein relate to a systemfor determining a position of a train traveling along a train track, thesystem comprising at least one radio-frequency (RF) antenna configuredto transmit and/or receive an RF signal to and/or from at least oneanchor node positioned proximate the train track and at least oneprocessor configured to obtain an arrival time of the RF signal, accessinformation specifying a geometry of the train track, and determine theposition of the train along the train track using the arrival time andthe information specifying the geometry of the train track.

In some embodiments, the at least one processor is further configured todetermine at least one distance between the at least one RF antenna andthe at least one anchor node using the arrival time and to determine theposition of the train along the train track using the at least onedistance and the information specifying the geometry of the train track.In some embodiments, the at least one distance comprises a firstdistance between the at least one RF antenna and a first anchor node ofthe at least one anchor node that is at a first position proximate thetrain track and a second distance between the at least one RF antennaand a second anchor node of the at least one anchor node that is at asecond position proximate the train track, and the at least oneprocessor is configured to identify a first observed position of thetrain along the train track using the first distance, the firstposition, and the information specifying the geometry of the traintrack, identify a second observed position of the train along the traintrack using the second distance, the second position, and theinformation specifying the geometry of the train track, and count adiscrepancy between the first observed position and the second observedposition against at least one of the first and second anchor nodes. Insome embodiments, the at least one RF antenna is configured to transmita first RF signal to the at least one anchor node, the at least one RFantenna is configured to receive a second RF signal from the at leastone anchor node, the RF signal is the second RF signal, and the at leastone processor is configured to determine the at least one distance usinga transmit time of the first RF signal and an arrival time of the secondRF signal.

In some embodiments, the at least one RF antenna comprises at least oneultra-wideband (UWB) antenna, and wherein the RF signal comprises atleast one UWB signal. In some embodiments, the system further comprisesat least one global navigation satellite system (GNSS) receiverconfigured to receive at least one GNSS signal, and the at least oneprocessor is further configured to determine the position of the trainusing the at least one GNSS signal received by the at least one GNSSreceiver.

In some embodiments, the system further comprises at least one inertialmeasurement unit (IMU) configured to generate IMU data responsive tomotion of the train along the train track, and the at least oneprocessor is further configured to determine the position of the trainfurther using the IMU data.

In some embodiments, the at least one processor is configured todetermine an estimated position of the train along the train track byexecuting a recursive state estimator and determine the position of thetrain using an output from the recursive state estimator. In someembodiments, the recursive state estimator comprises at least one Kalmanfilter and/or at least one Kalman smoother.

In some embodiments, the at least one processor is configured to executea bank of recursive state estimators that includes the recursive stateestimator. In some embodiments, the at least one processor is configuredto determine the position of the train along the track at least in partby determining at least one observed position of the train along thetrain track using the arrival time and the information specifying thegeometry of the train track and providing the at least one observedposition of the train as input to the recursive state estimator. In someembodiments, the bank of recursive state estimators comprises a bank ofKalman filters.

In some embodiments, the at least one observed position of the traincomprises a first observed train position, and wherein the at least oneprocessor is configured to determine the estimated position of the trainalong the train track at least in part by determining whether to updateany of the Kalman filters in the bank of Kalman filters using the firstobserved train position and, when the at least one processor determinesthat at least one Kalman filter in the bank of Kalman filters is to beupdated, providing the first observed train position as input to the atleast one Kalman filter and updating at least one respective state ofthe at least one Kalman filter using the first observed train position.In some embodiments, when the at least one processor determines not toupdate any of the Kalman filters in the bank of Kalman filters using thefirst observed train position, the at least one processor is configuredto initialize a new Kalman filter in the bank of Kalman filters.

In some embodiments, the bank of Kalman filters comprises a first Kalmanfilter and the at least one processor is configured to determine whetherto update any of the Kalman filters in the bank of Kalman filters atleast in part by determining whether to update the first Kalman filterusing the first observed train position and determine whether to updatethe first Kalman filter at least in part by determining a measure ofconsistency between a position of the train estimated by the firstKalman filter and the first observed train position. In someembodiments, the measure of consistency between the position of thetrain estimated by the first Kalman filter and the first observed trainposition is a measure of distance between the position of the trainestimated by the first Kalman filter and the first observed trainposition. In some embodiments, the measure of consistency between theposition of the train estimated by the first Kalman filter and the firstobserved train position is a likelihood of observing the first observedtrain position according to the state estimated by the first Kalmanfilter.

In some embodiments, the at least one processor is configured todetermine the position of the train along the train track at least inpart by integrating the arrival time with the geometry of the traintrack to obtain at least one observed position of the train along thetrain track. In some embodiments, the at least one processor isconfigured to integrate the arrival time with the geometry of the traintrack at least in part by using the information specifying the geometryof the train track to identify the at least one observed position of thetrain as being along the geometry of the train track and consistent withthe arrival time and at least one position of the at least one anchornode. In some embodiments, the at least one processor is configured todetermine at least one distance between the at least one RF antenna andthe at least one anchor node using the arrival time and to integrate theat least one distance with the geometry of the train track at least inpart by using the information specifying the geometry of the train trackto identify the at least one observed position of the train as beingalong the geometry of the train track and disposed at the at least onedistance from the at least one position of the at least one anchor node.In some embodiments, the at least one processor is configured todetermine the at least one observed position of the train further bydetermining whether the at least one observed position is RF visibleusing the at least one RF antenna.

In some embodiments, the system further comprises at least one globalnavigation satellite system (GNSS) receiver configured to receive atleast one GNSS signal, and the at least one processor is configured todetermine the position of the train further using consistency betweenthe at least one observed position and a second observed positiondetermined using the at least one GNSS signal. In some embodiments, theat least one processor is configured to determine the at least oneobserved position of the train further by determining whether the atleast one observed position is RF visible using the at least one UWBantenna and/or the at least one GNSS receiver.

Some embodiments of the technology described herein relate to a methodof determining a position of a train traveling along a train track, themethod comprising transmitting and/or receiving, using at least oneradio-frequency (RF) antenna, an RF signal to and/or from at least oneanchor node positioned proximate the train track, obtaining, by at leastone processor, an arrival time of the RF signal, accessing, by the atleast one processor, information specifying a geometry of the traintrack, and determining, by the at least one processor, the position ofthe train along the train track using the arrival time and theinformation specifying the geometry of the train track.

Some embodiments of the technology described herein relate to anon-transitory computer-readable medium having instructions storedthereon that, when executed by at least one processor, cause the atleast one processor to perform a method of determining a position of atrain traveling along a train track, the method comprising transmittingand/or receiving, using at least one radio-frequency (RF) antenna, an RFsignal to and/or from at least one anchor node positioned proximate thetrain track, obtaining, by at least one processor, an arrival time ofthe RF signal, accessing, by the at least one processor, informationspecifying a geometry of the train track, and determining, by the atleast one processor, the position of the train along the train trackusing the arrival time and the information specifying the geometry ofthe train track.

Some embodiments of the technology described herein relate to a systemfor determining a position of a train traveling along a train track, thesystem comprising at least one positioning device configured todetermine at least one observation of the train along the train trackand at least one processor configured to determine a plurality ofestimated positions of the train using information specifying a geometryof the train track and the at least one observation of the train andselect the position of the train from among the plurality of estimatedpositions.

In some embodiments, the at least one positioning device is selectedfrom the group consisting of at least one radio-frequency (RF) antennaconfigured to receive at least one RF signal from at least one anchornode positioned proximate the train track, at least one globalnavigation satellite system (GNSS) receiver configured to receive atleast one GNSS signal, and at least one inertial measurement unit (IMU)configured to generate IMU data responsive to motion of the train alongthe train track, and the at least one processor is configured todetermine the at least one observed position of the train using the atleast one RF signal, the at least one GNSS signal, and/or the IMU data.In some embodiments, the at least one positioning device comprises atleast one RF antenna configured to receive at least one RF signal fromat least one anchor node positioned proximate the train track, the atleast one RF antenna comprises at least one ultra-wideband (UWB)antenna, and the at least one RF signal comprises at least one UWBsignal.

In some embodiments, the at least one processor is configured todetermine the plurality of estimated positions of the train along thetrain track by executing a recursive state estimator and select theposition of the train using an output from the recursive stateestimator. In some embodiments, the recursive state estimator comprisesat least one Kalman filter and/or at least one Kalman smoother.

In some embodiments, the processor is configured to execute a bank ofrecursive state estimators that includes the recursive state estimatorand select the position of the train from among a plurality of outputsfrom the bank of recursive state estimators. In some embodiments, the atleast one processor is configured to determine the plurality ofestimated positions of the train along the track at least in part byproviding the at least one observed position of the train as input to aplurality of recursive state estimators of the bank of recursive stateestimators and obtaining the plurality of estimated motions of the trainas outputs from the plurality of recursive state estimators. In someembodiments, the bank of recursive state estimators comprises a bank ofKalman filters.

In some embodiments, the at least one observed position of the traincomprises a first observed train position, and wherein the at least oneprocessor is configured to determine the plurality of estimatedpositions of the train along the train track at least in part bydetermining whether to update any of the Kalman filters in the bank ofKalman filters using the first observed train position and, when the atleast one processor determines that at least one Kalman filter in thebank of Kalman filters is to be updated, providing the first observedtrain position as input to the at least one Kalman filter and updatingat least one respective state of the at least one Kalman filter usingthe first observed train position. In some embodiments, when the atleast one processor determines not to update any of the Kalman filtersin the bank of Kalman filters using the first observed train position,the at least one processor is configured to initialize a new Kalmanfilter in the bank of Kalman filters.

In some embodiments, the bank of Kalman filters comprises a first Kalmanfilter, and the at least one processor is configured to determinewhether to update any of the Kalman filters in the bank of Kalmanfilters at least in part by determining whether to update the firstKalman filter using the first observed train position, and determinewhether to update the first Kalman filter at least in part bydetermining a measure of consistency between a position of the trainestimated by the first Kalman filter and the first observed trainposition. In some embodiments, the measure of consistency between theposition of the train estimated by the first Kalman filter and the firstobserved train position is a measure of distance between the position ofthe train estimated by the first Kalman filter and the first observedtrain position. In some embodiments, the measure of consistency betweenthe position of the train estimated by the first Kalman filter and thefirst observed train position is a likelihood of observing the firstobserved train position according to the state estimated by the firstKalman filter.

In some embodiments, the at least one processor is configured todetermine the position of the train along the train track at least inpart by integrating the at least one observation with the geometry ofthe train track to obtain at least one observed position of the trainalong the train track. In some embodiments, the at least one positioningdevice comprises at least one RF antenna configured to transmit and/orreceive at least one RF signal to and/or from at least one anchor nodepositioned proximate the train track, the at least one observationcomprises an arrival time of the at least one signal, and the at leastone processor is configured to integrate the arrival time with thegeometry of the train track at least in part by using the informationspecifying the geometry of the train track to identify at least oneobserved position of the train as being along the geometry of the traintrack and consistent with the arrival time and at least one position ofthe at least one anchor node. In some embodiments, the at least oneobservation comprises at least one distance between the train and the atleast one anchor node positioned proximate the train track, the at leastone distance determined using the arrival time, and the at least oneprocessor is configured to integrate the at least one distance with thegeometry of the train track at least in part by using the informationspecifying the geometry of the train track to identify the at least oneobserved position of the train as being along the geometry of the traintrack and disposed at the at least one distance from the at least oneposition of the at least one anchor node. In some embodiments, the atleast one processor is configured to determine the position of the trainfurther by determining whether the at least one observed position is RFvisible using the at least one RF antenna.

In some embodiments, the at least one positioning device furthercomprises at least one GNSS receiver configured to receive at least oneGNSS signal, and the at least one processor is configured to determinethe position of the train further using consistency between the at leastone observed position and a second observed position determined usingthe at least one GNSS signal. In some embodiments, the at least oneprocessor is configured to determine the at least one observed positionof the train further by determining whether the at least one observedposition is RF visible using the at least one UWB antenna and/or the atleast one GNSS receiver.

Some embodiments of the technology described herein relate to a methodof determining a position of a train traveling along a train track, themethod comprising determining, by at least one positioning device, atleast one observation of the train along the train track, determining,by at least one processor, a plurality of estimated positions of thetrain using information specifying a geometry of the train track and theat least one observation of the train and selecting, by the at least oneprocessor, the position of the train from among the plurality ofestimated positions.

Some embodiments of the technology described herein relate to anon-transitory computer-readable medium having instructions storedthereon that, when executed by at least one processor, cause the atleast one processor to perform a method of determining a position of atrain moving traveling a train track, the method comprising determining,by at least one positioning device, at least one observation of thetrain along the train track, determining, by at least one processor, aplurality of estimated positions of the train using informationspecifying a geometry of the train track and the at least oneobservation of the train and selecting, by the at least one processor,the position of the train from among the plurality of estimatedpositions.

BRIEF DESCRIPTION OF DRAWINGS

Various aspects and embodiments of the disclosed technology will bedescribed with reference to the following figures. It should beappreciated that the figures are not necessarily drawn to scale. In thedrawings, each identical or nearly identical component that isillustrated in various figures is represented by a like numeral. Forpurposes of clarity, not every component may be labeled in everydrawing.

FIG. 1 is a drawing of an illustrative train 110 traveling along a traintrack 104 and incorporating a system 120 for determining motioncharacteristics of the train 110, in accordance with some embodiments ofthe technology described herein.

FIG. 2 is a drawing of an illustrative anchor node 102 that may bepositioned along a train track, in accordance with some embodiments ofthe technology described herein.

FIG. 3A is a drawing of an alternative illustrative anchor node 102′that may be positioned along a train track, in accordance with someembodiments of the technology described herein.

FIG. 3B is a drawing of the anchor node 102′ further illustrating powerand data ports of the anchor node 102′, in accordance with someembodiments of the technology described herein.

FIG. 4 is a drawing of an illustrative system 120 for determining motioncharacteristics of the train 110 and a train control system 160, eachpositioned onboard the train car 112 a of FIG. 1 , in accordance withsome embodiments of the technology described herein.

FIG. 5 is a drawing of illustrative components of a system 120 fordetermining motion characteristics of a train traveling along a traintrack, in accordance with some embodiments of the technology describedherein.

FIG. 6 is a drawing of illustrative RF and GNSS subsystems 130 and 150of the system 120 for determining motion characteristics of a train, inaccordance with some embodiments of the technology described herein.

FIG. 7A is a drawing of an alternative illustrative RF subsystem 130′that may be included in a system for determining motion characteristicsof a train, in accordance with some embodiments of the technologydescribed herein.

FIG. 7B is a drawing of the RF subsystem 130′ further illustrating powerand data ports of the RF subsystem 130′, in accordance with someembodiments of the technology described herein.

FIG. 8 is drawing of illustrative components of a system for determiningmotion characteristics of a train, including printed circuit boards 140,a connector interface 126, and a housing 124, in accordance with someembodiments of the technology described herein.

FIG. 9 is a drawing of the illustrative train 110 traveling along thetrain track 104 and a plurality of estimated positions of the train 110along the train track 104, in accordance with some embodiments of thetechnology described herein.

FIG. 10 is a drawing of the illustrative train 110 traveling along thetrain track 104 and two observed positions of the train 110 along thetrain track 104, only one of which is RF visible to and from an anchornode 102, in accordance with some embodiments of the technologydescribed herein.

FIG. 11 is a drawing of an illustrative train car 112 having a motiondetermination system 120 onboard that is traveling along a train tracktoward an anchor node 102, in accordance with some embodiment of thetechnology described herein.

FIG. 12A is a drawing of an illustrative track segment 200 from a firstpoint P to a second point Q and a point R at which a train is estimatedto be positioned, in accordance with some embodiments of the technologydescribed herein.

FIG. 12B is a drawing of the illustrative track segment 200 and a pointR′ from which the train is estimated to be separated by a distance d, inaccordance with some embodiments of the technology described herein.

FIG. 12C is a drawing of the illustrative track segment 200 and twopoints R₁ and R₁ from which the train is observed using RF signalshaving different arrival times, in accordance with some embodiments ofthe technology described herein.

FIG. 13 is a drawing of an illustrative graph 300 of motioncharacteristics of a train generated by a system for determining motioncharacteristics of a train, in accordance with some embodiments of thetechnology described herein.

FIG. 14 is a drawing of illustrative components of a system fordetermining motion characteristics of a train, including one or moreprocessor(s) 142 configured to execute a recursive state estimator bank190, in accordance with some embodiments of the technology describedherein.

FIG. 15 is a drawing of an illustrative method 400 for determiningmotion characteristics of a train traveling along a train track, inaccordance with some embodiments of the technology described herein.

FIG. 16 is a drawing of an illustrative method 500 for determiningmotion characteristics of a train traveling along a train track, inaccordance with some embodiments of the technology described herein.

FIG. 17 is a drawing of an illustrative computer system 600 on whichsome embodiments described herein may be implemented.

DETAILED DESCRIPTION

The inventors recognized that conventional train control systemsconstrain the capacity of a train system (e.g., rate at which passengersare transported by the train system) because the conventional traincontrol systems are unable to precisely locate trains within the trainsystem. For instance, conventional train control systems permit only onetrain to travel in a given track segment because the train controlsystems are not able to precisely locate trains within the tracksegment, and thus could not prevent a collision between two trainstraveling along the same track segment. For example, if two trains weretraveling in the same track segment and the leading train stopped, thetrain control system would be unable to detect the stopping of theleading train and appropriately signal the following train to stopbefore colliding with the leading train. Additionally, because the traincontrol system may need to stop a train before the train reaches thenext track segment, trains within the train system are operated at lowspeed. For example, if two trains were traveling in consecutive tracksegments and the leading train stopped while traveling in its tracksegment, the following train would have to stop before reaching the nexttrack segment because the train control system does not know where theleading train is within the next track segment. Accordingly, the lack ofprecision in locating trains along the tracks prevents more trains fromtraveling in the same track segment, and also limits the speed at whichtrains may safely travel along the tracks.

To address these drawbacks of conventional train control systems, theinventors developed techniques for determining motion characteristics(e.g., position, velocity, acceleration, position uncertainty, velocityuncertainty, acceleration uncertainty, etc.) of trains traveling along atrain track with greater accuracy than previously possible. Thesetechniques may be used to safely operate the trains at higher speeds andwith shorter separation between trains than previously possible, therebyallowing for an increased capacity of the train system. In someembodiments, the techniques developed by the inventors useultra-wideband (UWB) RF data, global navigation satellite system (GNSS)data, and/or inertial measurement unit (IMU) data collected by one ormore IMUs onboard a train to determine the train's motioncharacteristics as the train travels along the train track. Theinventors recognized that determining the train's motion characteristicsusing such techniques provides train control systems with enhancedprecision, enabling trains to travel faster and closer together along atrain track without compromising safety.

Some techniques developed by the inventors facilitate determining motioncharacteristics using range data obtained via one or more wireless linksbetween electronics onboard the train and electronics positioned alongthe train track. In some embodiments, the range data may indicate theposition, velocity, and/or acceleration of the train. In one example,the train may include one or more radio frequency antennas (e.g.,ultra-wideband RF antennas) onboard the train that exchange wirelesssignals with one or more anchor nodes positioned along the train track.In some embodiments, radio frequency antennas described herein may beconfigured to receive signals having a center frequency between 3-10GHz, such as between 3-5 GHz, between 4-5 GHz, and/or between 7-10 GHz.In some embodiments, radio frequency antennas may have a bandwidth of atleast 400 MHz, at least 500 MHz, at least 1 GHz, and/or at least 2 GHz.In the above example, the range data may include a distance separatingthe train from the anchor node(s) (and/or arrival times of one or moresignals), and one or more processors located onboard the train may beconfigured to determine the motion characteristics using the range data.In some embodiments, one or more range processors (e.g., of multipleprocessors onboard the train) may be packaged with the RF antenna(s) todetermine the range data, and another processor may be disposed on acircuit board that is wired to the RF antenna(s) for determining themotion characteristics using the range data.

Some techniques described herein alternatively or additionallyfacilitate determining motion characteristics using global navigationsatellite system GNSS data obtained via one or more GNSS receiverspositioned onboard the train. In some embodiments, the GNSS data mayindicate the position, velocity, and/or acceleration of the train. Inone example, the train may include one or more GNSS receivers onboardthe train that receive GNSS signals from one or more satellites and/orconstellations. In some embodiments, one or more GNSS processors may bepackaged with the GNSS receiver(s) to receive and process the GNSS data.For example, the GNSS processor(s) can be configured to determine globalcoordinates and/or a velocity of the GNSS receiver(s) based on thetiming of one or more received GNSS signals.

Some techniques described herein alternatively or additionally use oneor more IMUs onboard the train, which generate motion data responsive todetecting movement of the train (e.g., along the track geometry and/orin elevation with respect to the track, etc.), to determine the motioncharacteristics of the train. For instance, the motion data generated bythe IMU(s) may indicate a position, velocity, and/or acceleration of thetrain. In one example, one or more processors onboard the train may beconfigured to determine the motion characteristics using the motion datafrom the IMU(s). In some embodiments, the processor(s) may be disposedon a circuit board, and the IMU(s) may be disposed on the same circuitboard.

Some techniques described herein provide a determined uncertainty toaccompany motion characteristics determined using the RF antenna(s),GNSS receiver(s), and/or the IMU(s) described herein. For instance, insome embodiments, the processor(s) onboard the train may be configuredto determine an uncertainty of motion characteristics generated usingthe RF antenna(s), taking into account factors such as how recently therange data was determined, how strong the transmitted and/or receivedwireless signals were, which onboard or anchor node antenna(s)transmitted and/or received the signals that served as the basis for therange data, and/or whether range data determined using other antennasonboard the train is substantially different from the range data used todetermine the motion characteristics, and other such considerations.Alternatively or additionally, in some embodiments, the processor(s) maybe configured to determine an uncertainty of motion characteristicsgenerated using the IMU(s), taking into account factors such as howrecently the IMU data was generated, whether data from any other IMUsonboard the train is substantially different from the IMU data used todetermine the motion characteristics. In some embodiments, the GNSSreceiver(s) may provide similar uncertainty data with at least someobservations, such as based on a number of satellites from which GNSSsignals were received and/or the signal-to-noise ratio (SNR) associatedthe observation(s).

Some techniques described herein use data from multiple modalities(e.g., one or more RF antennas, GNSS receiver(s), and/or IMU(s), etc.)to determine motion characteristics of a train. In some embodiments, thetrain may have one or more radio frequency antennas onboard forexchanging signals with one or more track-adjacent anchor nodes togenerate range data, and the train may also have one or more GNSSreceivers onboard to provide GNSS data responsive to receiving GNSSsignals. Alternatively or additionally, the train may have one or moreIMUs onboard to generate motion data responsive to detecting movement ofthe train.

The inventors recognized that using a single modality (e.g., onlyantenna(s), only GNSS, or only IMU(s)) may cause the motioncharacteristics determined onboard the train to have an intolerablelevel of uncertainty for some applications. For instance, in suchapplications, error in the motion characteristics caused by anenvironment lacking one of the modalities (e.g., inside a tunnel RFinvisible to GNSS), or caused by a temporary failure of one of themodalities (e.g., poor antenna signal due to weather, etc.), maycompromise the safety of trains within the systems. Accordingly,multi-modal techniques (e.g., using a combination of one or more RFantennas, GNSS receiver(s), and/or the IMU(s)) may compensate forenvironments where only some modalities are available. For example, GNSSreceivers may be used to determine motion characteristics while thetrain is outdoors and antennas may be used to determine motioncharacteristics while the train is in a tunnel. Alternatively oradditionally, multi-modal techniques may compensate for uncertaintyresulting from a failure of one of the modalities, as the other modalitymay detect the failure and/or provide the data needed to determinemotion characteristics in the absence of the failed modality. Forexample, range data obtained using the RF antenna(s) and/or GNSS dataobtained using the GNSS receiver(s) may be inconsistent with IMU data,thus indicating a failure of the RF antenna and/or an anchor node incommunication with the RF antenna. The antenna failure may be mitigatedby using the GNSS and/or IMU data, and not using the range data, todetermine the motion characteristics of the train.

The inventors further developed techniques for reconciling data receivedfrom multiple modalities (e.g., RF antenna(s) and IMU(s), etc.) tomitigate uncertainty in the data. For instance, in some embodiments, theprocessor(s) onboard the train may be configured to correct data fromthe IMU(s) using range data from the RF antenna(s), and/or to correctrange data from the RF antenna(s) using GNSS data. In one example, theprocessor(s) may be configured to store previously determined motioncharacteristics (e.g., position, velocity, and acceleration) in a memoryand estimate motion characteristics at a later time using data from theIMU(s). Then, the processor(s) may be configured to determine motioncharacteristics using range data from the RF antenna(s) to correct themotion characteristics that were estimated using the IMU(s), and/or touse GNSS data to correct motion characteristics determined using the RFantenna(s). In this example, the IMU(s) may be configured to determinethe acceleration of the train using measurements of acceleration in thedirection of the train track and also in a gravity direction, such thatthe uphill or downhill slope of the track may be incorporated intoestimating the position and/or velocity of the train. The range datareceived from the RF antenna(s) may be used to correct the positionand/or velocity estimates made using the acceleration measurementsdetermined using the IMU(s). Likewise, the GNSS data received from theGNSS receiver(s) may be used to correct the position and/or velocityestimates made using the RF antenna(s) and/or IMU(s). As a result,motion characteristics determined onboard the train may be more accurateby intelligently combining data from the multiple modalities tocompensate for one another, increasing the confidence with which traincontrol systems may operate the trains.

In some embodiments, a system for determining a position of a traintraveling along a train track may include at least one UWB antennaconfigured to transmit and/or receive at least one UWB signal to and/orfrom at least one anchor node positioned proximate the train track. Forexample, the UWB antenna(s) may be configured only to transmit signalsto the anchor node(s), only to receive signals from the anchor node(s),or to both transmit and receive signals to and from the anchor node(s).In some embodiments, the system may further include a processorconfigured to determine at least one first observed position of thetrain along the train track using an arrival time of the UWB signal(s).For example, a transmit time of a first UWB signal (e.g., to or from theanchor node) and an arrival time of a second signal (e.g., from or tothe anchor node) may indicate a distance between the UWB antenna(s) andthe anchor node(s), and the positions of the anchor node(s) may be knownto facilitate observing a position of the train. Alternatively oradditionally, arrival times of multiple signals at or from multipleanchor nodes, together with known positions of the anchor nodes, maygenerate one or more observed positions of the UWB antenna(s).

In some embodiments, the system may further include at least one GNSSreceiver configured to receive at least one GNSS signal, and theprocessor(s) may be configured to determine one or more second observedpositions using at least one GNSS signal received by the GNSSreceiver(s). For example, the GNSS position(s) may indicate where thetrain is likely to be positioned along the train track. In someembodiments, the processor(s) may be further configured to determine anestimated positions of the train along the train track using the firstobserved position(s) and at least one second observed position of thetrain along the train track. For example, the observed position(s) maybe provided to an estimator that outputs the position of the train.

The inventors further developed techniques for converting train motionobservations from one or more modalities with the geometry of the traintrack, facilitating and increasing the accuracy of train motiondetermination. The inventors recognized that trains are generallyconstrained to move along a train track, and further that the geometryof a train track may be winding and potentially overlap with itself(e.g., when a track forms one or more loops). In some embodiments, arepresentation of the geometry of a train track may be stored in memoryas and/or including a data structure linking positions along the traintrack to corresponding geographic positions, such as inthree-dimensional (3D) space. For example, the representation of thetrack geometry may be stored with associated data indicating where thegeographic positions are situated (e.g., coordinates) within a desiredframe of reference. In some embodiments, observed geographic positionsof the train (e.g., using GNSS and/or range data) that coincide with thegeometry of the train along the track in 3D space may be converted toone or more corresponding positions along the geometry of the traintrack, facilitating accurate determination of motion characteristicssuch as velocity and acceleration along the geometry of the train track.

In some embodiments, observations from one or more modalities may beintegrated with the geometry of the train track. For example, anobserved geographic position of the train may not coincide with thegeometry of the train track in 3D space, violating the assumption thatmovement of the train is confined to the train track. In this example,the observed geographic position can be rectified by identifying one ormore other positions coinciding with the geometry of the train trackthat are likely to be the true position of the train, therebyintegrating the observed geographic position with the geometry of thetrain track. For instance, a position along the geometry of the traintrack may be identified as a likely position of the train when it is thenearest position along the geometry of the train track to a geographicposition observed using GNSS signals. Alternatively or additionally, oneor more positions along the geometry of the train track may beidentified as likely positions of the train by being consistent with anarrival time of an RF signal transmitted to and/or received from theanchor node. Similarly, where an arrival time of an RF signal wouldindicate an erroneous observed position of the train along the traintrack, such as a position in which the anchor node is RF invisible to orfrom the onboard antenna that communicated with the anchor node, sucherroneous positions may be filtered out based on the track geometry incombination with known orientations of the onboard antennas.

In some embodiments, a system for determining a position of a traintraveling along a train track may include at least one RF (e.g., UWB)antenna configured to transmit and/or receive an RF signal to and/orfrom at least one anchor node positioned proximate the train track. Forexample, the RF antenna(s) may be configured only to transmit signals tothe anchor node(s), only to receive signals from the anchor node(s), orto both transmit and receive signals to and from the anchor node(s). Insome embodiments, the system may include at least one processorconfigured to obtain an arrival time of the RF signal. For example, theRF antenna may transmit a first signal to the anchor node(s) at atransmit time and receive a second signal from the anchor node(s) at thearrival time, and/or vice versa. Alternatively or additionally, the RFantenna may transmit the RF signal and the RF signal may arrive atmultiple anchor nodes at respective arrival times that include thearrival time, and/or vice versa (e.g., with RF signals arriving at theRF antenna from multiple anchor nodes at the respective arrival times).

In some embodiments, the processor(s) may be configured to accessinformation specifying a geometry of the train track and determine theposition of the train along the train track using the arrival time andthe information specifying the train track. For example, the informationspecifying the geometry of the train track may include points in 3Dspace corresponding to positions where the train may be located alongthe train track. In this example, the processor(s) may be configured todetermine the position of the train along the train track as one of thepoints in 3D space that is consistent with the arrival time. Forinstance, a transmit time of a first RF signal and an arrival time of asecond RF signal, together with a known position of an anchor node thattransmitted the RF first signal and received the second RF signal, orvice versa, may indicate a subset of the points in 3D space as one ormore indicated positions of the train along the train track.Alternatively or additionally, arrival times of multiple RF signals atthe RF antenna from multiple anchor nodes, or vice versa, together withknown positions of the anchor nodes, may indicate a subset of the pointsin 3D space as one or more indicated positions of the train along thetrain track.

In some embodiments, IMU data can be integrated with the geometry of thetrain track, such as by using observed acceleration of the train alongan axis that aligns with the train track, and/or portions of theobserved acceleration that align with the geometry of the portion of thetrain track on which the train is determined to be moving. The inventorshave recognized that converting and/or integrating train motionobservations from one or more modalities with the track geometryfacilitates accurate determination of motion characteristics alongcomplex train track trajectories and integration of observations frommultiple modalities into a single reference frame to make suchdeterminations.

Some techniques described herein further provide estimation of motioncharacteristics of a train traveling along a train track, from which asubset of the motion characteristics of the train may be selected. Forexample, a plurality of estimators (e.g., recursive state estimators)may be executed to track motion characteristics (e.g., position,velocity, acceleration, etc.) and/or associated uncertainties usingobserved motion characteristics over time. In some embodiments,producing multiple estimations from which an estimate may be selectedprovides computationally efficient and accurate estimation of trainmotion characteristics.

In some embodiments, a system for determining a position of a traintraveling along a train track may include at least one positioningdevice (e.g., GNSS, RF, and/or IMU) configured to determine at least oneobservation of the train along the train track. For example, theobservation(s) may include a position, velocity, and/or acceleration ofthe train observed using GNSS-, RF-, and/or IMU-based data. In someembodiments, the system may further include at least one processorconfigured to determine a plurality of estimated positions of the trainusing information specifying a geometry of the train track and theobservation(s) of the train. For example, the plurality of estimatedpositions may be determined by executing one or more recursive stateestimators (e.g., a bank of estimators, which may itself be anestimator). For instance, the processor(s) may provide theobservation(s) (e.g., one or more points in 3D space corresponding tothe train track that are consistent with GNSS-, RF-, and/or IMU-baseddata) to the recursive state estimator(s) to update the plurality ofestimated positions (e.g., tracked using the estimator(s)). In someembodiments, the processor(s) may be further configured to select theposition of the train from among the plurality of estimated positions.For example, the processor(s) may select an output of one of theestimator(s) as the position of the train.

Some techniques described herein further provide an interface betweenthe electronics onboard the train tasked with determining the motioncharacteristics and the train control system. For instance, in someembodiments, the interface may provide the motion characteristics to anonboard control system communication channel that forwards the motioncharacteristics to a central hub and receives operation commands fromthe central hub in response. Alternatively or additionally, in someembodiments, the interface may provide the motion characteristics to adecentralized control system hub that generates operation commands forthe train from onboard. Accordingly, motion determination systemsdescribed herein provide the motion characteristics directly to thetrain control system.

It should be appreciated that motion characteristics such as positions,velocities, and/or accelerations described herein may be absolute (e.g.,within a suitable reference frame) and/or relative (e.g., with respectto an object). For instance, an observed position using GNSS signals maybe an absolute position, whereas a distance with respect to an anchornode or a position consistent with different arrival times of RF signalstransmitted to or from multiple anchor nodes may be a relative position.It should also be appreciated that the train does not need to be movingin order for the motion determination techniques described herein to beused, as such techniques may be used to determine motion characteristicsof a standstill train.

Various aspects described herein may be implemented in any of numerousways. Examples of specific implementations are provided herein forillustrative purposes only. In addition, the various aspects describedin the embodiments below may be used alone or in any combination and arenot limited to the combinations described explicitly herein.

FIG. 1 is a drawing of an illustrative train 110 traveling along a traintrack 104 and incorporating a system 120 for determining motioncharacteristics of the train 110, in accordance with some embodiments ofthe technology described herein. In FIG. 1 , the train 110 includesmultiple train cars 112 a and 112 b, each including at least one motiondetermination system 120 and a power supply 170. The motiondetermination system(s) 120 may be configured to determine a position,velocity, and/or acceleration of the train 110. Train car 112 a alsoincludes at least one train control system 160 that may be configured todetermine when the train 110 moves and stops, and/or the speed for thetrain 110 to travel, depending on motion characteristics provided by themotion determination system(s) 120.

FIG. 1 further illustrates anchor nodes 102 positioned along the traintrack 104 and operating in communication with the motion determinationsystem(s) 120 onboard the train 110 to facilitate determination ofmotion characteristics of the train 110, as described further herein.While the anchor nodes 102 are illustrated side-by-side with the track104, it should be appreciated that anchor nodes 102 described hereinalternatively or additionally may be positioned above or below the traintrack 104, or in any other position suitable for exchanging wirelesssignals with antennas onboard the train 110. In some embodiments, theanchor nodes 102 may have known positions. For example, the positions ofthe anchor nodes 102 may be surveyed and recorded (e.g., stored inmemory of a central database and/or a memory of motion determinationsystem 120) during and/or after installation of the anchor nodes 102.

In some embodiments, anchor nodes 102 may be spaced from each otheralong the direction of elongation of the train track 104. For example,an average spacing between adjacent anchor nodes 102 may be less than 1kilometer (km), such as 600 meters (m). In this example, anchor nodes102 may be capable of transmitting and/or receiving RF signals over atransmission range of at least 100 m, such as 300 m and/or 350 m. Insome embodiments, where the train track 104 bends, an anchor node 102may be positioned on the inner (e.g., shorter) and/or outer (e.g.,longer) side of the bend.

In some embodiments, motion determination system(s) 120 may bepositioned onboard the train cars 112 a and 112 b. For example, motiondetermination system(s) 120 may be positioned in portions of the traincars 112 a and 112 b that do not house the train crew, passengers, orcargo, such as in an area above the cabin of the train car.Alternatively or additionally, in some embodiments, motion determinationsystem(s) 120 may be positioned in the cabins of the train car 112 aand/or 112 b. In some embodiments, train control system(s) 160 may bepositioned in the same portion of the train car 112 a as motiondetermination system(s) 120. In some embodiments, train controlsystem(s) 160 may be positioned in a different portion of the train car112 a from motion determination system(s) 120.

Each motion determination system 120 onboard the train 110 may beconfigured to determine motion characteristics of the train 110traveling along the train track 104 using data gathered from one or moresensors on the train 110. For example, the motion determinationsystem(s) 120 may include one or more radio frequency (RF) antennas,GNSS receiver(s), and/or IMU(s), and one or more processors to determinethe motion characteristics using data from the RF antenna(s), GNSSreceiver(s), and/or IMU(s). In some embodiments, data from only onemodality (e.g., the RF antenna(s), the GNSS receiver(s), the IMU(s),etc.) may be incorporated in determining the motion characteristics. Inother embodiments, data from multiple modalities may be incorporated, asdescribed further herein.

For motion determination systems 120 that include the RF antenna(s), theRF antenna(s) may exchange wireless signals with the track-adjacentanchor node(s) 102 to generate range data indicating the position,velocity, and/or acceleration of the train 110. The processor(s) onboardthe train 110 (e.g., including one or more range processors) may beconfigured to determine the range data using the exchanged wirelesssignals, such as using one or more arrival times of the wirelesssignals. For example, a transmit time of a first signal and an arrivaltime of a second signal may provide time of flight measurements thatindicate the distance separating the RF antenna(s) from the anchornode(s) 102. As another example, differences in arrival times ofmultiple signals transmitted to or received from multiple anchor nodes102 may provide indicate a set of possible positions relative to theanchor nodes 102. In either example, the arrival time(s) of the signalsmay serve directly or indirectly (e.g., through a distance measurementderived therefrom) as the basis for observing a position of the train.

In some embodiments, the range data may include a distance from thetrain 110 to the anchor node(s) 102. For example, the RF antenna(s) ofthe motion determination system 120 may transmit a first signal to ananchor node 102 and the anchor node 102 may transmit a second signal 102to the motion determination system 120 in response to receiving thefirst signal. In this example, the round-trip travel time between thetransmit time of the first signal and the arrival time of the secondsignal may indicate the distance between the RF antenna(s) of the motiondetermination system 120 and the anchor node 102. The distance may bedetermined by subtracting from the round-trip travel time any knowndelays, such as a delay between when the anchor node 102 receives thefirst signal and transmits the second signal, dividing the round-triptravel time by two to obtain the one-way travel time, and multiplyingthe one-way travel time by the wave speed of the first and secondsignals (e.g., the speed of light in air). In some embodiments, the RFantenna(s) may transmit signals periodically, such as 10-100 times persecond (e.g., 40 Hz), and anchor nodes 102 may be responsive to receivedsignals. Alternatively or additionally, anchor nodes 102 may transmitsignals periodically, and the RF antenna(s) may be responsive toreceived signals.

In some embodiments, the distance between the anchor node 102 and the RFantenna(s) of the motion determination system 120 may be used todetermine motion characteristics of the train 110. For example, if theanchor nodes 102 have known positions, a position of the train 110 maybe determined using the determined distances between the train 110 andthe anchor nodes 102 and the known positions of the anchor nodes 102.Alternatively or additionally, motion characteristics other thanposition, such as velocity and/or acceleration, may be determined usingthe distance and the known positions and/or doppler information (e.g.,doppler shift) in the received RF signals. In some embodiments, the RFantenna(s) onboard the train 110 may exchange wireless signals withmultiple ones of the anchor nodes 102 to generate the range data.Alternatively or additionally, the processor(s) may generate multiplesets of range data corresponding to signals exchanged with the multipleanchor nodes 102 and/or using multiple RF antennas.

In accordance with various embodiments, an exchange of wireless signalsas described herein may include any or each of: (1) a motiondetermination system transmitting a first signal to an anchor node andthe anchor node responding by transmitting a second signal to the motiondetermination system; (2) an anchor node transmitting a first signal toa motion determination system and the motion determination systemresponding by transmitting a second signal to the anchor node; (3)anchor nodes periodically transmitting signals to motion determinationsystems at synchronized intervals; and/or (4) a motion determinationsystem periodically transmitting a signal to anchor nodes atsynchronized intervals.

For systems in which signals are transmitted periodically atsynchronized intervals, time difference of arrival (TDOA) or inverseTDOA (iTDOA) determinations may be made using arrival times of two ormore received signals. For example, a motion determination systemonboard a train may be configured to receive a first signal from a firstanchor node and a second signal from a second anchor node. In thisexample, the anchor nodes may be configured to transmit the first,second, and third signals at the same time. The differences in arrivaltimes of the first and second signals (e.g., iTDOA), together with knownlocations of the anchor nodes and the geometry of the train track, inthis example, may be used to determine a position of the train. A systemmay operate similarly in which the first and second anchor nodes receivethe same signal transmitted from a motion determination system onboard atrain, where the anchor nodes are synchronized in time and incommunication with one another to determine differences in arrival timesof the signal at each anchor node (e.g., TDOA). Alternatively oradditionally, signals from three or more anchor nodes may be used toestimate a position of the train, which may be converted to the geometryof the train track.

For motion determination systems that include one or more GNSSreceivers, the GNSS receiver(s) may include one or more GNSS antennasthat receive GNSS signals from one or more satellites and/orconstellations 106 to generate GNSS data indicating the position,velocity, and/or acceleration of train 110. The processor(s) onboardtrain 110 (e.g., including one or more GNSS processors) may beconfigured to determine the GNSS data using the received GNSS signals,such as using time of flight measurements that indicate the distances(e.g., pseudo ranges) separating the GNSS receiver(s) from satellite(s)106. In some embodiments, the GNSS data may include a triangulatedposition from the train 110 to satellite(s) 106. For example, the GNSSsignal(s) received from satellite(s) 106 may identify the satellite(s)106, thereby indicating the travel time(s) between transmission of theGNSS signal(s) and reception of the GNSS signal(s) to allow pseudoranges to be calculated and a position to be triangulated using thepseudo ranges. In some embodiments, GNSS data generated using the GNSSreceiver(s) (e.g., a triangulated position) may be used to determinemotion characteristics of train 110. For example, a triangulatedposition may be and/or may indicate the position of train. Alternativelyor additionally, motion characteristics other than position, such asvelocity and/or acceleration, may be determined using multipletriangulated positions over time.

For motion determination systems 120 that include one or more IMUs, theIMU(s) may generate motion data responsive to detecting motion of thetrain 110 and provide the motion data to the processor(s) of thesystem(s) 120. For instance, the IMU(s) may be configured to determineone or more positions, velocities, and/or accelerations of the train 110in the direction of the train track 104 and/or vertically with respectto the train track 104 (e.g., upwards away from the train track 104 ordownwards towards the train track 104). In some embodiments, an IMU mayinclude a gyroscope and/or accelerometer configured to provide signalsindicative of acceleration of the train 110 along one or moredirections. For example, motion data output by the IMU may be indicativeof roll (e.g., rotational about an axis parallel to the direction ofelongation of the train 110), pitch (e.g., rotational about an axisparallel to the ground surface and perpendicular to the direction ofelongation of the train 110), and/or yaw (e.g., rotational about an axisperpendicular to the ground surface and the direction of elongation ofthe train 110) acceleration. In some embodiments, the processor(s) maybe configured to determine the motion characteristics of the train 110by accumulating motion data output by the IMU(s) over time. For example,given a position and/or velocity of the train 110 at a first time, theprocessor(s) may be configured to determine a later position and/orvelocity of the train 110 using the position and/or velocity of thefirst time and the motion data generated by the IMU(s). In someembodiments, the processor(s) may be configured to convert the motiondata from the IMU(s) to a direction along the geometry of the track,such as by only using vector components of acceleration along thegeometry of the track.

In some embodiments, a motion determination system 120 may include theRF antenna(s), the GNSS receiver(s), and/or the IMU(s), and theprocessor(s) of the system may be configured to determine the motioncharacteristics of the train 110 using a combination of the range datafrom the RF antenna(s), the GNSS data from the GNSS receiver(s), and/orthe motion data from the IMU(s). For example, the processor(s) mayestimate motion characteristics of the train 110 using the motion datafrom the IMU(s), such as by estimating a position of the train 110 usinga previous position of the train 110 and one or more accelerationmeasurements (e.g., along the geometry of the train track). In thisexample, the processor(s) may correct the motion characteristicestimates using range data received using the RF antenna(s) and/or GNSSdata received using the GNSS receiver(s), thus reducing the uncertaintyof motion characteristics provided from the motion determination system120 to the train control system(s) 160.

Motion determination systems 120 on the same or different train cars(e.g., 112 a and 112 b) may further communicate motion characteristicsto one another via wired and/or wireless connections within and/or amongthe train cars. One or more of the motion determination systems 120 mayinterface directly with the train control system(s) 160 to provide themotion characteristics to the train control system(s) 160, such that thetrain control systems 160 are able to determine whether to start, stop,or continue movement of the train 110. For instance, motioncharacteristics received from multiple trains may indicate that one ofthe trains is at risk of colliding with another one of the trains. Itshould be appreciated that, in some embodiments, the train controlsystem(s) 160 may send the motion characteristics to a central controllocation external to the train and receive motion control instructionsin response to sending the transmitted motion characteristics.

In some embodiments, the processor(s) of motion determination system 120may be configured to perform zero-velocity determination using one ormore modalities onboard train 110. As one example, the processor(s) maybe configured to determine that the train 110 is not moving in responseto data from the IMU(s) indicating the train has zero acceleration. Inthe same or another example, the processor(s) may be configured todetermine that the velocity of the train 110 is below a predefinedvelocity, that a predefined time has elapsed since the position of thetrain 110 has been determined to change. In some embodiments, acombination of determinations indicating zero velocity may be used todetermine that the train has zero velocity. For example, theprocessor(s) may be configured to determine a velocity of the train 110using each modality individually (and/or within each modality, such asusing RF signals exchanged with different anchor nodes) so as togenerate velocities with little to no correlation, allowing a classifierexecuted by the processor(s) to identify (e.g., with an associatedconfidence) whether the train 110 has zero velocity. In someembodiments, an adaptive threshold for zero velocity determination maybe used, such as for IMU, RF, and/or GNSS-based velocity determinations.For instance, the threshold may depend on whether a predefined amount oftime has elapsed since the train 110 started up, whether the train 110is in a zone along the track in which the train 110 is expected to stop(e.g., proximate a station), and/or other suitable factors that mayaffect the likelihood of error in determining zero velocity. In someembodiments, recursive state estimators described further herein may beconfigured to alternatively or additionally track zero velocitydeterminations based on individual modalities and/or within individualmodalities.

FIG. 2 is a drawing of an illustrative anchor node 102 that may bepositioned along a train track, in accordance with some embodiments ofthe technology described herein. In some embodiments, anchor node 102may be mounted on a pole or a wall. For example, anchor node 102 may beplaced on a pole or wall adjacent a train track. As shown in FIG. 2 ,anchor node 102 has a housing 180 containing other components of anchornode 102 (not shown). Such components may include one or more RFsubsystems and one or more processors. For example, the RF subsystem(s)may be configured to transmit and/or receive RF signals to and/or from amotion determination system onboard a train for use by the motiondetermination system in determining motion characteristics of the train,as described herein. In some embodiments, housing 180 may be waterproofand/or dustproof to provide environmental protection for the componentsof anchor node 102. In some embodiments, anchor node 102 may bepositioned outdoors. In some embodiments anchor node 102 may bepositioned in a subway tunnel.

In some embodiments, multiple anchor nodes 102 may have a same positionalong a train track, such as along the direction of elongation of thetrain track and/or along a direction parallel to the ground below thetrain track and perpendicular to the direction of elongation of thetrain track. The inventors recognized that including multiple anchornodes 102 having a same position (e.g., in a redundant configuration)allows for distance determination between a train and the anchor nodes102 in the event one of the anchor nodes 102 fails during operation.

FIG. 3A is a drawing of an alternative illustrative anchor node 102′that may be positioned along a train track, in accordance with someembodiments of the technology described herein. FIG. 3B is a drawing ofthe anchor node 102′ further illustrating power and data ports of theanchor node 102′, in accordance with some embodiments of the technologydescribed herein.

In some embodiments, anchor node 102′ may be configured in the mannerdescribed herein for anchor node 102. For example, anchor node 102′ mayinclude components configured to transmit and/or receive RF signals toand/or from a motion determination system onboard a train travelingalong a train track when anchor node 102′ is positioned along the traintrack.

In some embodiments, anchor node 102′ may include multiple antennasoriented in different directions. For example, as shown in FIG. 3A,anchor node 102′ includes a pair of housing members 180 a′ and 180 b′positioned back-to-back and coupled together by a mounting bracket 181′.In some embodiments, each housing member 180 a′ and 180 b′ may includean antenna, such that when placed back-to-back as shown in FIG. 3A, theantennas face in opposite directions.

In some embodiments, each housing member 180 a′ and 180 b′ may containan RF subsystem and one or more processor. For example, the RF subsystemmay be configured to transmit and/or receive RF signals via the antennato and/or from a motion determination system onboard a train for use bythe motion determination system in determining motion characteristics ofthe train, as described herein. As shown in FIG. 3B, a data port 182′and a power port 184′ are exposed at a surface of housing member 180 b′.Similar ports may be exposed at a surface of housing member 180 a′. Insome embodiments, data port 182′ may be configured to transmit and/orreceive data, such as to program the RF subsystem with a known locationof anchor node 102′ during installation. In some embodiments, power port184′ may be configured to power the RF subsystem and/or processor withinhousing member 180 b′. It should be appreciated that a common RFsubsystem and/or processor may be shared among the antennas withinseparate housing members of an anchor node in other embodiments.

In some embodiments, anchor node 102′ may have multiple antennas, eachconfigured to transmit and/or receive signals to and/or from a motiondetermination system onboard trains traveling on different sides ofanchor node 102′ along the geometry of a train track. For example, afirst antenna of anchor node 102′ configured to transmit and/or receivesignals to and/or from a motion determination system onboard a traintraveling on a first side of anchor node 102′ (e.g., on the east side,where the local track geometry is east to/from west), and a secondantenna of anchor node 102′ configured to transmit and/or receivesignals to and/or from a motion determination system onboard a traintraveling on a second side of anchor node 102′ (e.g., on the west side).In some embodiments, anchor node 102′ may be mounted on a pole or walladjacent the train track with a first antenna facing along the geometryof the train track in the first direction (e.g., facing east) and asecond antenna facing along the geometry of the train track in thesecond direction (e.g., facing west). As shown in FIG. 3A, mountingbracket 181′ includes four screw holes that comply with a VESA standard.Anchor node 102′ may be mounted on a pole or wall such that the plane inwhich the four screw holes are disposed is substantially parallel to andfaces away from the geometry of the track at the point where anchor node102′ is positioned proximate the track. Using the above example wherethe track runs east to west, the four screw holes may be disposed in theplane containing the east-west directions and the vertical up-downdirection, and the mounting bracket 181′ is farther from the track thanthe housing members 180 a′ and 180 b′ are. In some embodiments, multipleanchor nodes 102′ may be positioned on the same pole and/or wall forredundancy.

FIG. 4 is a drawing of illustrative motion determination and traincontrol systems 130 and 160 onboard the train car 112 a of FIG. 1 , inaccordance with some embodiments of the technology described herein. InFIG. 4 , the motion determination system 120 includes multiple motiondetermination modalities, namely an RF subsystem 130 including one ormore radio frequency (RF) antennas, a GNSS subsystem 150 including oneor more GNSS receivers, and one or more IMUs 146. The motiondetermination system further includes one or more processors 142 and amemory 144. It should be appreciated that, in accordance with variousembodiments, motion determination systems described herein may includeonly one or a subset of the motion determination modalities, such as theRF antenna(s), the GNSS receiver(s), or the IMU(s), but not each.Although not shown in FIG. 4 , in some embodiments, motion determinationsystem 120 may alternatively or additionally include one or morevelocity sensors, such as doppler radars, optical sensors, and/ortachometers coupled to processor(s) 142.

As illustrated in FIG. 4 , the processor(s) 142, IMU(s) 146, and memory146 are disposed on one or more PCBs 140 coupled to RF subsystem 130.For instance, RF antenna(s) of RF subsystem 130 may provide range datato the processor(s) 142 for determining the motion characteristics. Itshould be appreciated that the components disposed on PCB(s) 140 mayvary in accordance with various embodiments. For instance, in someembodiments, the IMU(s) 146 is/are not disposed on PCB(s) 140.Alternatively or additionally, the system 120 may include multiple PCBs140 with components positioned on the multiple PCBs 140. As an example,the IMU(s) 146 may be positioned on respective PCBs 140. Further, insome embodiments, the RF antenna(s) of RF subsystem 130 may be disposedon one or more of PCBs 140.

In some embodiments, memory 144 may store one or more representations ofthe geometry of one or more train tracks 104. For example, therepresentation(s) stored in memory 144 may include data structuresindicating and/or specifying the geometry of the train track, positionsalong the geometry of the train track (e.g., along one or more rails ofthe train track and/or between the rails, such as along the centerlinebetween the rails), the direction of the train track at one or morepositions, and/or the shape and/or interconnections of portions of thetrain track. In some embodiments, the data structures may link positionsalong the geometry of the train track to geographic positions in 3Dspace (e.g., longitude, latitude, and/or elevation coordinates). Forexample, geographic positions in 3D space may use a Euclidean frame ofreference and/or a geodetic frame of reference. For instance, the frameof reference may be Earth-centered Earth-fixed (ECEF), a tangent planelocal reference frame (e.g., North East Down (NED)), and/or a mapprojection reference frame (e.g., Universal Traverse Mercator (UTM)). Insome embodiments, some or all positions along the track geometry storedin memory 144 may correspond to multiple respective geographic positionsin 3D space, such as in the elevation dimension, allowing at least somegeographic positions in 3D space to collapse to a lesser number ofcorresponding track geometry positions. For example, the track geometrypositions may be limited only to positions in 3D space that a train(and/or components on the train) can feasibly occupy while the traintravels on the train track(s) 104.

In some embodiments, track geometry representation(s) saved in memory144 may include data structures representing a plurality of tracksegments. For example, each track segment may include a plurality oftrack geometry positions corresponding to geographic positions in 3Dspace. In some embodiments, the data structure(s) may further representa vector direction (e.g., in 3D space) of the track segment. In oneexample, the track segment may be represented as a straight line in thevector direction of the track segment for purposes of motiondetermination. For instance, positions along the track geometry and/ortrack segments of may be stored as a linked and/or doubly linked list ofgeometric primitives in memory 144, such as with each geometricprimitive linked to the next primitive in the list in memory 144, thenext primitive corresponding to an adjacent position along the trackgeometry and/or track segment. In some embodiments, processor(s) 142 maybe configured to convert geographic positions in 3D space (e.g.,observed positions based on GNSS and/or RF signals) to positions alongthe geometry of the train by transforming the geographic positions in 3Dspace to corresponding track geometry positions represented in memory144.

In some embodiments, motion determination system 120 may be configuredto determine motion characteristics (e.g., an observed position) of atrain 110 using signals transmitted and/or received via RF subsystem130. For example, one or more range processors of RF subsystem 130 maybe configured to determine a distance between the RF antenna(s) of RFsubsystem 130 and one or more anchor nodes 102, as described furtherherein including with reference to FIG. 5 . In some embodiments, RFsubsystem 130 may provide the distance(s) to processor(s) 142, andprocessor(s) 142 may be configured to determine motion characteristicsusing the distance(s). For example, if known positions of the anchornodes 102 are stored in memory 140, processor(s) 142 may be configuredto determine the position of train 110 using the known position of ananchor node 102 and the distance between the RF antenna(s) of RFsubsystem 130 and the anchor node 102 (e.g., taking into account a knownposition of the RF antenna(s) onboard train 110). In some embodiments,processor(s) 142 may be configured to integrate the determineddistance(s) with the geometry of the train track. For example,processor(s) 142 may be configured to identify one or more observedpositions along the geometry of the track stored in memory 144 disposedat the distance(s) with respect to anchor node(s) 102 used to obtain thedistance(s).

In some embodiments, motion determination system 120 may be configuredto determine motion characteristics (e.g., an observed position) of atrain 110 using GNSS signals received using GNSS subsystem 150. Forexample, one or more GNSS processors of GNSS subsystem 150 may beconfigured to determine an observed (e.g., triangulated) position ofGNSS subsystem 150 using the received GNSS signal(s), as describedfurther herein including with reference to FIG. 5 . In some embodiments,GNSS subsystem 150 may be configured to provide the observed position(s)to processor(s) 142, and processor(s) 142 may be configured to determinemotion characteristics using the observed position(s). For example, ifthe observed position coincides with a position along the geometry ofthe train track stored in memory 144, processor(s) 142 may be configuredto convert the observed position of train 110 to the correspondingposition along the geometry of the train track stored in memory 144. Insome embodiments, processor(s) 142 may be configured to integrate theobserved position with the geometry of the train track. For example,processor(s) 142 may be configured to identify one or more position(s)along the track geometry stored in memory 144 nearest the observedposition and select the identified position(s) to integrate the observedposition with the geometry of the train track.

In some embodiments, processor(s) 142 may be configured to determine avelocity of train 110 using a previous position of train 110 (e.g.,stored in memory 144), the current position of train 110, and a traveltime of train 110 between the positions. Alternatively or additionally,processor(s) 142 may be configured to determine a velocity of train 110using an observed velocity of the train from RF subsystem 130 and/orGNSS subsystem 150. Further alternatively or additionally, processor(s)142 may be configured to determine a velocity of train 110 using anobserved velocity from one or more velocity sensors of motiondetermination system 120 such as a doppler radar, optical sensor, and/ortachometer.

In some embodiments, processor(s) 142 may be configured to determine anacceleration of train 110 using the current velocity of train 110, aprevious velocity of train 110 (e.g., stored in memory 144), and atravel time of train 110 between the velocities. In some embodiments,motion determination system 120 may be configured to determine motioncharacteristics of a train using the IMU(s) 146. For example, the IMU(s)146 may output to processor(s) 142 one or more signals indicative ofroll, pitch, and/or yaw acceleration of the train 110. In this example,a previous position, velocity, and/or acceleration of the train 110 maybe stored in memory 144. A current velocity of the train 110 (e.g.,along the train track and/or away from the train track) may bedetermined using a previous velocity of the train 110, the currentacceleration of the train 110 (e.g., along a direction of the traintrack), and a travel time of train 110 between the previous velocity andthe current acceleration. A current position and/or pitch of the train110 may be determined using a previous position of the train 110, thecurrent velocity of the train 110, and the travel time of train 110between the positions. In some embodiments, processor(s) 142 may beconfigured to integrate an observed position, velocity, and/oracceleration from IMU(s) 146 with the geometry of the train track, suchas by using observations and/or components of observations aligned withthe geometry of the portion of the train track the train is determinedto be traveling along.

In some embodiments, an analog-to-digital converter (ADC) may beincluded in IMU(s) 146 and/or coupled between IMU(s) 146 andprocessor(s) 142 to digitize signals from IMU(s) 146 before the signalsare provided to processor(s) 142. In some embodiments, processor(s) 142may store IMU signals and/or data derived from the IMU signals in memory144, for example, in association with a time at which the IMU signalswere received and/or generated. In some embodiments, signals output fromIMU(s) 146 may indicate that the train has zero acceleration, andprocessor(s) 142 may be configured to determine using these signals thatthe train is not moving (e.g., in combination with previous signalsindicating deceleration).

In some embodiments, motion determination system 120 may be configuredto determine motion characteristics of a train using a combination ofsignals transmitted and/or received using RF subsystem 130, GNSSsubsystem 150, and/or IMU(s) 146. For example, processor(s) 142 mayreceive from RF subsystem 130 one or more distances between the RFantenna(s) of RF subsystem 130 and one or more respective anchor nodes102, an observed position and/or velocity from GNSS subsystem 150, andone or more signals indicative of roll, pitch, and/or yaw accelerationfrom IMU(s) 146. In some embodiments, processor(s) 142 may be configuredto determine a first set of motion characteristics (e.g., position,velocity, and acceleration) of the train 110 using the distance(s)provided by RF subsystem 130, a second set of motion characteristics ofthe train 110 using the position and/or velocity from GNSS subsystem150, and/or a third set of motion characteristics of the train 110 usingthe signal(s) provided by IMU(s) 146. For example, the sets of motioncharacteristics may be different. Because IMU(s) 146 may be prone todrift over time, processor(s) 142 may override the second set of motioncharacteristics with the first set of motion characteristics. Forexample, when a position determined using RF signals conflicts with aposition determined using IMU data, the position determined using RFsignals may be selected as the determined position of the train 110.Similarly, motion characteristics determined using GNSS data mayoverride motion characteristics determined using range data and/or IMUdata.

In some embodiments, processor(s) 146 may be configured to reconcilemotion characteristics determined using RF signals received by RFsubsystem 130 with motion characteristics determined using GNSS signalsreceived by GNSS subsystem 150 and/or motion characteristics determinedusing signals from IMU(s) 146. In some embodiments, processor(s) 146 mayadjust motion determination characteristics of IMU(s) 146 if motioncharacteristics determined using RF and/or GNSS signals conflict withmotion characteristics determined using IMU(s) 146. As used herein,motion determination characteristics are parameters that may factor intodetermining motion characteristics using RF signals, GNSS signals,and/or IMU data, such as estimated IMU accelerometer and/or gyroscopebiases. For example, gyroscope and/or accelerometer biases over time maybe stored in memory 144 and used to determine motion characteristicsfrom the signal(s) generated by IMU(s) 146. In this example,processor(s) 142 may be configured to update the motion determinationcharacteristics stored in memory 144 based on differences between thedetermined sets of motion characteristics. In some embodiments,processor(s) 142 may be configured to determine new gyroscope and/oraccelerometer biases that reduce and/or minimize residuals betweenmotion characteristics determined using RF signals, GNSS signals, and/orcorresponding motion characteristics determined using IMU(s) 146. Forexample, the new gyroscope and/or accelerometer biases, when applied tothe signal(s) received from IMU(s) 146, may reduce and/or minimizediscrepancies between positions, velocities, and accelerationsdetermined using RF signals and positions, velocities, and accelerationsdetermined using IMU(s) 146.

In some embodiments, motion determination system 120 may includemultiple IMUs 146, GNSS subsystems 150, and/or RF subsystems 130. Theinventors recognized that some IMUs 146, GNSS subsystems 150, and/or RFsubsystems 130 may fail during operation of motion determination system120, and including multiple IMUs 146, GNSS subsystems 150, and/or RFsubsystems 130 configured redundantly reduces the susceptibility ofmotion determination system 120 to overall failure. For instance, if anIMU 146, a GNSS subsystem 150, and/or an RF subsystem 130 fails, thefailure may be detected as a result of inconsistent data determinedamong and/or using a combination of the IMUs 146, GNSS subsystems 150,and/or the RF subsystems 130. Upon determining the failure of an IMU146, GNSS subsystem 15, and/or RF subsystem 130, the motiondetermination system 120 may ignore data from the failed IMU 146, GNSSsubsystem 150, and/or RF subsystem 130.

FIG. 5 is a drawing of illustrative components of a system 120 fordetermining motion characteristics of a train traveling along a traintrack, in accordance with some embodiments of the technology describedherein. In FIG. 5 , RF subsystem 130 includes one or more rangeprocessors 136 coupled to multiple RF antennas 132 via an RF front-end134. Also shown in FIG. 5, GNSS subsystem 150 includes one or more GNSSprocessor(s) 156 coupled to multiple GNSS antennas 152 via a GNSSfront-end 154.

In some embodiments, RF antennas 132 may be configured to transmit RFsignals to and/or receive RF signals from one or more anchor nodes 102.In some embodiments, RF front-end 134 may be configured to preparebaseband signals for transmission by RF antennas 132 and/or prepare RFsignals received by RF antennas 132 for processing by range processor(s)136. In some embodiments, range processor(s) 136 may be configured todetermine a distance between RF antennas 132 and an anchor node 102using signals exchanged between the RF antenna(s) 132 and the anchornodes 102.

In some embodiments, RF antennas 132 may be positioned in a part of atrain car that facilitates communication with anchor nodes positionedadjacent the train track. For instance, RF antennas 132 may bepositioned on an external face of the train car, and/or near an interiorwall of the train car that is not shielded with metal or otherelectrical conductors. In some embodiments, a first RF antenna may bepositioned at or near the front of a train car and a second RF antennamay be positioned at or near the rear of the train car. While multipleRF antennas 132 are shown in FIG. 5 , it should be appreciated that asingle RF antenna 132 may be included in an RF subsystem 130. Forexample, the same RF antenna 132 may be used for both transmission andreception. Alternatively, the same RF antenna 132 may be used only fortransmission or only for reception. According to various embodiments,one or each RF antenna 132 may include one or more antenna elements,such as a single element (e.g., a dipole) and/or an array of elements(e.g., a dipole array). For example, an array of elements may beoperated as a phased array, and/or may be operated together to transmitand/or receive RF signals.

In accordance with various embodiments, RF antennas 132 may includeultra-wideband (UWB) antennas. For example, RF antenna(s) 132 may beconfigured to receive signals having a center frequency on the order of3-10 GHz, such as between 3-5 GHz, between 3-5 GHz, between 4-5 GHz,and/or between 7-10 GHz. RF antenna(s) 132 may have a bandwidth of atleast 400 MHz and/or at least 500 MHz, such as at least 1 GHz and/or atleast 2 GHz. In one example, RF antennas 132 may be configured totransmit and/or receive over a frequency range from 3.1-4.8 GHz. RFantennas 132 may be configured to communicate with anchor nodes 102 thatare configured for the same or an overlapping frequency range. In oneexample, RF antennas 132 may have a gain of approximately 6 dB, whereasantennas of anchor nodes 102 may be substantially omnidirectional (e.g.,having a gain of approximately 0 dB). In another example, anchor nodeantennas may have a gain of approximately 6 dB, with antennas of ananchor node oriented in at least two different directions. In oneexample, an anchor node 102 may include one or more RF antennas coupledto circuitry configured to responsively transmit signals after receivingone or more signals from RF antennas 132 of the system 120 at a same ordifferent frequency. It should be appreciated that RF antennas 132 maybe configured to operate in any suitable frequency range and with anysuitable gain level. While RF antennas 132 are shown including twoantennas in FIG. 5 , in some embodiments, RF antennas 132 may includegreater or fewer than two antennas.

In some embodiments, RF front-end 134 may include circuitry formodulating, up-converting, and amplifying signals transmitted to theanchor node(s) via RF antennas 132, and/or amplifying, down-converting,and/or demodulating signals received from the anchor node(s) 102 via RFantenna(s) 132. For instance, RF front-end 134 may be configured formodulating and/or demodulating signals using ALOHA modulation and/ortime division multiple access (TDMA) modulation. RF front-end 134 mayfurther include one or more mixers and local oscillators forup-converting signals from baseband to an RF carrier frequency fortransmission, and/or down-converting received signals from the same or adifferent RF carrier frequency to baseband for processing by rangeprocessor(s) 136. Additionally, RF front-end 134 may include one or moretransmit (e.g., power) amplifiers for signal transmission and/or one ormore receive (e.g., low noise) amplifiers for signal reception. In someembodiments, multiple mixers and/or local oscillators and/or phaseshifters or time delay units may be used, such as for in-phase andquadrature demodulation and/or beamforming (e.g., using an array of RFantennas 132). In some embodiments, RF front-end 134 may include adigital-to-analog converter (DAC) for signal transmission and/or ananalog-to-digital converter (ADC) for signal reception. In someembodiments, RF antennas 132 and/or the RF antenna(s) of the anchornode(s) 102 may be capable of signal transmission over a range of 500meters and/or 1000 meters while maintaining a range data precision onthe order of centimeters (cm) (e.g., 2-3 cm).

In some embodiments, the range processor(s) 136 may be configured todetermine range data using RF signals transmitted to and/or receivedfrom the anchor node(s) 102. For example, range processor(s) 136 may beconfigured to determine a distance between RF antenna(s) 132 and ananchor node 102, such as by calculating a one-way time of flight betweenRF antennas 132 and the anchor node(s) 102 using signals transmitted toand received from the anchor node(s) 102. For instance, in someembodiments, range processor(s) 136 may be configured to record a timewhen RF signals are transmitted to the anchor node(s) 102 using RFantennas 132 such that, upon reception of RF signals from the anchornode(s) 102, range processor(s) 136 may be configured to determine theround-trip travel time between when the RF signals were transmitted tothe anchor node(s) 102 and when the RF signals were received from theanchor node(s) 102. Range processor(s) 136 may be configured to subtractfrom the round-trip travel time a known delay between when the anchornode(s) 102 are configured to receive RF signals and transmit RF signalsin response, and divide the resulting time by two to obtain the one-waytravel time of signals transmitted between RF antennas 132 and theanchor node(s) 102. Range processor(s) 136 may be further configured tomultiply the one-way travel time by the wave speed of the RF signals(e.g., the speed of light in air) to obtain a distance between RFantennas 132 and the anchor node(s) 102. In some embodiments, rangeprocessor(s) 136 may be configured to determine a velocity, which may beincluded in the range data, such as using doppler information inreceived RF signals. For example, the doppler information may include adoppler shift in frequency and/or other artifacts of received RF signalsindicating the velocity of the train 110.

In some embodiments, GNSS antennas 152 may be configured receive GNSSsignals from one or more satellites 106. In some embodiments, GNSSfront-end 154 may be configured to prepare GNSS signals received by GNSSantennas 152 for processing by GNSS processor(s) 156. In someembodiments, GNSS processor(s) 156 may be configured to determine aglobal position of GNSS subsystem 150 using GNSS signals exchangedreceived by GNSS antenna(s) 152 from the satellite(s) 106.

In some embodiments, GNSS antenna(s 152 may be positioned in a part of atrain car that facilitates reception of GNSS signals from satellites RFvisible overhead and/or outdoors. For instance, GNSS antennas 152 may bepositioned on an external face of the train car, and/or near an interiorwall of the train car that is not shielded with metal or otherelectrical conductors. In some embodiments, GNSS antennas 152 may beconfigured to receive signals having a center frequency on the order of1-3 GHz, such as to receive GNSS signals from one or a variety ofsatellite-based transmitters. Examples of suitable satellite-basedtransmission systems and associated constellations include the GlobalPositioning System (GPS), Galileo, GLONASS, BeiDou, India RegionalNavigation Satellite System (NavIC), Quasi-Zenith Satellite System(QZSS). In some embodiments, one or more of GNSS antennas 152 may beomnidirectional. Alternatively or additionally, one or more of GNSSantennas 152 may be at least partially directional so as to focus signalreception in the expected direction of satellite(s) (e.g., when orientedtoward the sky). It should be appreciated that GNSS antennas 152 may beconfigured to operate in any suitable frequency range and with anysuitable gain level. While GNSS antennas 152 are shown including twoantennas in FIG. 5 , in some embodiments, GNSS antennas 152 may includegreater or fewer than two antennas.

In some embodiments, GNSS front-end 154 may include circuitry foramplifying, down-converting, and/or demodulating GNSS signals receivedfrom the satellite(s) 106 via GNSS antenna(s) 152. For instance, GNSSfront-end 154 may be configured for demodulating signals using multipleaccess modulation, such as code division multiple access (CDMA),frequency division multiple access (FDMA), TDMA, and/or combinationsthereof. GNSS front-end 154 may further include one or more mixers andlocal oscillators for down-converting received signals from the same ora different carrier frequency to baseband for processing by GNSSprocessor(s) 156. Additionally, GNSS front-end 154 may include one ormore receive amplifiers for signal reception. In some embodiments,multiple mixers and/or local oscillators and/or phase shifters or timedelay units may be used, such as for in-phase and quadraturedemodulation and/or beamforming (e.g., using an array of GNSS antennas152). In some embodiments, GNSS front-end 154 may include an ADC forsignal reception.

In some embodiments, GNSS processor(s) 156 may be configured todetermine GNSS data using GNSS signals received from satellite(s) 106.For example, GNSS processor(s) 156 may be configured to determine anobserved position of GNSS subsystem 150, such as by triangulation usingcalculated pseudo ranges between GNSS subsystem 150 and the satellite(s)106. For instance, GNSS processor(s) 156 may be configured to record atime when GNSS signals are received from the satellite(s) 106 anddetermine the travel time between when the GNSS signals were transmittedby the satellite(s) 106 and when the GNSS signals, thereby indicatingpseudo ranges. In some embodiments, GNSS processor(s) 156 may beconfigured to identify the satellite(s) 106 that transmitted thereceived GNSS signals to determine the travel time. In some embodiments,GNSS processor(s) 156 may be configured to triangulate the observedposition of GNSS subsystem 150 using one or more positions ofsatellite(s) 106 and calculated pseudo ranges. GNSS processor(s) 156 maybe further configured to apply correction techniques (e.g., dilution ofprecision and/or reference clock bias correction) when determining theobserved position of the GNSS subsystem 150. In some embodiments, GNSSprocessor(s) 156 may be configured to output to processor(s) 142 GNSSdata indicating coordinates of one or more observed geographic positionsin 3D space. In some embodiments, GNSS processor(s) 156 may beconfigured to observe and output one or more velocities using multipleobserved positions and an elapsed time between the observed positions.

In some embodiments processor(s) 142 may be configured to provide one ormore observed, estimated, and/or determined positions, velocities,and/or accelerations to range processor(s) 136 and/or GNSS processor(s)156 to be included in generating range data and/or GNSS data. As oneexample, range processor(s) 136 may be configured to use an observedposition from GNSS processor(s) 136 to filter out range data that isinconsistent with the observed position, and/or vice versa.Alternatively or additionally, in some embodiments, range processor(s)136 and/or GNSS processor(s) 136 may be configured to integrate observedpositions and/or distances with the geometry of the train track storedin memory 144.

As described herein, a satellite or anchor node is RF visible to theappropriate subsystem when signals may be transmitted to and/or receivedfrom the satellite or anchor node having power levels exceeding thesensitivity levels of the receivers. For example, a GNSS receiver mayneed to be in the line-of-sight of a satellite to receive signalsexceeding the sensitivity level of the receiver, which may be obstructedby some tunnels or bridges. As another example, an RF subsystem and/oranchor node may need to be in the optical line-of-sight and antennabeamwidth of one another to receive signals exceeding their respectivesensitivity levels. Signals may be obstructed by tunnel walls or othertrains, and/or may be too attenuated over a large distance (e.g., over2000 meters) to exceed the receiver sensitivity level. It should beappreciated, however, that optical line-of-sight is not necessarilyrequired to be RF visible. For example, in the case of anchor nodes andRF subsystems, RF signal processing may be used to account for multipatheffects due to non-line of sight communication. Alternatively oradditionally, attenuation from optical line-of-sight blocking objectsmay be small enough over a short communication range and/or for a smallobject to satisfy the sensitivity of the receiver.

FIG. 6 is a drawing of an illustrative RF subsystem 130 of a system 120for determining motion characteristics of a train, in accordance withsome embodiments of the technology described herein. In someembodiments, RF subsystem 130 may be positioned onboard a train. Forexample, in FIG. 6 , RF subsystem 130 is shown in an upper portion of atrain car, which may be positioned above the cabin of the train car. Inthis example, the cabin may house the train crew, passengers, and/orcargo. In some embodiments, multiple RF subsystems 130 or multiple RFantennas of a single RF subsystem may be positioned in a single traincar, such as at opposite ends of the train car. For example, an RFsubsystem and/or RF antenna positioned at an end of a train car that isnot adjacent another train car may be configured to transmit and/orreceive RF signals used in range data determination. In this example, RFsubsystems 130 positioned on different train cars at ends of the traincars that are adjacent one another may be configured to communicaterange data and/or motion characteristics to one another such that therange data and/or motion characteristics may be shared among multiplemotion determination systems 120 on the different train cars.

As shown in FIG. 6 , RF subsystem 130 includes a housing 182 containingother components of RF subsystem 130. RF subsystem 130 is also showncoupled to an electrical connector 184, which may be a coaxialconnector. In some embodiments, electrical connector 184 may beconfigured to transport high frequency (e.g., RF or baseband) signals toother components of motion determination system 120. For example, one ormore RF antennas contained in housing 182 may be configured to providereceived signals to electrical connector 184 and/or transmit signalsreceived from electrical connector 184. Alternatively or additionally,the RF antenna(s) may be configured to transmit signals in response toreceiving signals via electrical connector 184. In some embodiments, RFantennas of RF subsystem 130 may be positioned outside of housing 182and coupled to other components (e.g., processor(s)) of RF subsystemcontained within housing 182.

FIG. 7A is a drawing of an alternative illustrative RF subsystem 130′that may be included in a system for determining motion characteristicsof a train, in accordance with some embodiments of the technologydescribed herein. FIG. 7B is a drawing of the RF subsystem 130′ furtherillustrating power and data ports of the RF subsystem 130′, inaccordance with some embodiments of the technology described herein.

In some embodiments, RF subsystem 130′ may be configured in the mannerdescribed herein for RF subsystem 130. For example, RF subsystem 130′may include one or more range processors coupled to one or more RFantennas via an RF front-end.

In some embodiments, multiple RF subsystems 130′ may be positionedonboard a train with their antennas oriented in different directions.For example, as shown in FIG. 7A, RF subsystem 130′ includes a housingmember that may include an antenna, such that when multiple RFsubsystems 130′ face in different directions, the antennas face indifferent directions. As shown in FIG. 7B, a data port 132′ and a powerport 134′ are exposed at a surface of the housing member. In someembodiments, data port 132′ may be configured to transmit and/or receivedata, such as to provide range data to a processor of a motiondetermination system. In some embodiments, power port 134′ may beconfigured to power the RF subsystem and/or a range processor within thehousing member.

In some embodiments, RF subsystems 130′ may be positioned onboard atrain, each configured to transmit and/or receive signals to and/or fromanchor nodes on different sides of the train along the geometry of atrain track. For example, a first RF subsystem 130′ may be configured totransmit and/or receive signals to and/or from anchor nodes on a firstside of the train (e.g., in front of the train) and a second RFsubsystem may be configured to transmit and/or receive signals to and/orfrom anchor nodes on a second side of the train (e.g., behind thetrain). In some embodiments, at least one RF subsystem 130′ may beplaced at the front and/or rear of the train and/or at the front and/orrear of each train car.

FIG. 8 is drawing of illustrative components of a system 120 fordetermining motion characteristics of a train, including one or moreprinted circuit boards (PCBs) 140, a connector interface 126, and ahousing 124, in accordance with some embodiments of the technologydescribed herein. As shown in FIG. 8 , housing 124 contains PCB(s) 140and connector interface 126. In some embodiments, housing 124 may have awindow exposing at least a portion of PCB(s) 140 to facilitatemaintenance of system 120. For example, equipment may be insertedthrough the window and used to test components of PCB(s) 140. In someembodiments, PCB(s) 140 may include one or more processors, IMU(s),and/or a memory, as described herein including with reference to FIG. 4. In some embodiments, connector interface 126 may be configured forelectrically coupling to RF subsystem 130 and/or GNSS subsystem 150. Forexample, one or more electrical cables may connect the electricalconnector 184 of RF subsystem 130 to connector interface 126 of system120. Alternatively or additionally, in some embodiments, connectorinterface 126 may be configured for electrically coupling to traincontrol system 160 via one or more electrical cables and/or over acommunication network, and/or other motion determination systems 120onboard the train via one or more electrical cables and/or over acommunication network.

FIG. 9 is a drawing of the illustrative train 110 traveling along thetrain track 104 and a plurality of observed positions E1-E5 of the train110 along the train track 104, in accordance with some embodiments ofthe technology described herein.

As shown in FIG. 9 , train 110 may have several observed positions E1-E5along the train track 104. First and second observed positions E1 and E2may be determined based on RF signals exchanged between RF subsystem 130and first anchor node 102 a. For example, a time of flight of the RFsignals (e.g., from the transmit time of the first signal to the arrivaltime of the second signal) may indicate a first distance d₁ between RFsubsystem 130 and first anchor node 102 a, and the position of firstanchor node 102 a may be known (e.g., stored in memory 144. Accordingly,all points along train track 104 positioned at distance d₁ from firstanchor node 102 a may be potential observed positions for train 110based on RF signals exchanged with first anchor node 102 a.

Similarly, as shown in FIG. 9 , second and third estimates E2 and E3 maybe determined based on RF signals exchanged between RF subsystem 130 andsecond anchor node 102 b (e.g., having a known position) indicatingsecond distance d₂ between RF subsystem 130 and second anchor node 102b. In this example, second observed position E2 may be obtained using RFsignals from either or both of anchor nodes 102 a and 102 b, as the RFsignals from both anchor nodes 102 a and 102 b are compatible withsecond observed position E2. At the same time, in this example, observedpositions E1 and E3 may not be compatible with observed position E2. Forinstance, observed positions E1 and E3 may be too far from observedposition E2 to be within an expected ranging error tolerance. Rather,the discrepancies between observed position E2 and observed positions E1and E3 may be caused by the presence of multiple intersections betweenthe range circle of first anchor node 102 a and train track 104 andbetween the range circle of second anchor node 102 b and train track104. Alternatively or additionally, in some cases, observed position E1and/or E3 may be rejected as outside a known visibility (e.g., stored inmemory 144) of first anchor node 102 a and/or second anchor node 102 b.As yet another alterative or additional case, observed position E1and/or E3 may be rejected based on proximity in time to receiving GNSSsignals from satellite(s) 106, such as when observed position E1 and/orE3 is outside a known visibility (e.g., stored in memory) ofsatellite(s) 106. Accordingly, observed positions E1 and E3 may bedetermined to be incorrect and disregarded from determination of motioncharacteristics.

Also shown in FIG. 9 , fourth observed position E4 may be determinedbased on GNSS signals received by GNSS subsystem 150 onboard train 110.For example, a time of flight of the GNSS signals may indicate atriangulated position E4′ of GNSS subsystem 150, which may be convertedto the along-track observed position E4. In this example, fourthobserved position E4 is compatible with second observed position E2,indicating the same observed position of train 110, as the distancebetween second and fourth observed positions E2 and E4 is the same asthe offset distance d_(offset) between RF subsystem 130 and GNSSsubsystem 150 onboard train 110. Since fourth observed position E4 iscompatible with second observed position E2, fourth observed position E4may serve as a basis for disregarding observed positions E1 and E3 asincorrect.

Also shown in FIG. 9 , fifth observed position E5 may be determinedbased on IMU data generated by IMU(s) 146 onboard train 110. Forexample, acceleration along track 104 detected by IMU(s) 146 may beintegrated (e.g., over time) from a previously observed position oftrain 110, resulting in fifth observed position E5. In this example,fifth observed position E5 may still be compatible with second andfourth position estimates E2 and E4, despite not coinciding with anexpected position E5′ that could be derived from second and fourthposition estimates E2 and E4. For instance, the discrepancy betweenobserved position E5 and expected position E5′ may be within an expectederror tolerance of IMU(s) 146, such as due to bias and/or drift. In sucha case, the discrepancy between observed position E5 and expectedposition E5′ could be used to correct for bias and/or drift in IMU(s)146.

During operation of motion determination system 120, RF subsystem 130may be configured to provide range data to processor(s) 142 indicatingdistances d₁ and d₂. In response, processor(s) 142 may be configured todetermine observed positions E1, E2, and E3 using distances d₁ and d₂,known positions of first anchor node 102 a and second anchor node 102 b,and a geometry of track 104. Similarly, GNSS subsystem 150 may beconfigured to provide GNSS data to processor(s) 142 indicatingtriangulated position E4′, responsive to which processor(s) 142 may beconfigured to determine observed position E4 using triangulated positionE4′ and the geometry of track 104. IMU(s) 146 may be configured toprovide IMU data to processor(s) 142 indicating acceleration over aperiod of time since the most recent motion determination, response towhich processor(s) 142 may be configured to determine observed positionE5 using the IMU data, one or more previously observed positions oftrain 110 along track 104, and the geometry of track 104.

In some embodiments, processor(s) 142 may be configured to use observedpositions E1-E5 to determine motion characteristics of train 110. In oneexample, processor(s) 142 may be configured to constrain a graph byusing observed positions E1-E5 to form residuals to be minimized.Alternatively or additionally, processor(s) 142 may be configured to useobserved positions E1-E5 to form an estimated position in a recursivestate estimator bank having a plurality of recursive state estimators.For example, each observed position may be used to generate a recursivestate estimator and/or may be accepted into a recursive state estimatorinto which it is compatible, as described further herein.

In some embodiments, discrepancies in along-track positions observedusing two or more anchor nodes may be counted against observations madethe anchor node(s), as such discrepancies may indicate the presence ofmultipath and/or anchor node positioning errors in the system. Forexample, in some embodiments, an along-track position observed using afirst distance (e.g., d₁) derived from signals received and/ortransmitted by a first anchor node (e.g., 102 a) may be inconsistentwith an along-track position observed using a second distance (e.g., d₂)derived from signals received and/or transmitted by a second anchor node(e.g., 102 b). For instance, multipath errors (e.g., due to reflectionsoff of one or more objects) and/or an incorrect known position of one ofthe anchor nodes may cause one of the determined distances (e.g., d₁ ord₂) to result in an erroneously observed position. In this example,instances of inconsistencies between positions observed using differentanchor nodes may be counted (e.g., using an error counter executed by aprocessor of the motion determination system), with the error count usedas a basis for discounting observations from at least one of the anchornodes and/or updating uncertainties associated with distances determinedwith respect to the anchor node(s). In some embodiments, error checkingmay be performed in this manner every time the system determines themotion of the train, at the time of system initialization, and/orperiodically during operation as a system health check.

While observed positions E1-E3 are described herein as observed usingtime of flight measurements, it should be appreciated that positions maybe observed using TDOA or iTDOA measurements. For example, signals maybe transmitted from anchor nodes 102 a and 102 b to RF subsystem 130 atthe same time and may arrive at RF subsystem 130 at different times. Asdescribed further herein, the arrival times of the signals and knownpositions of anchor nodes 102 a and 102 b may be consistent with a setof points along the train track (e.g., including observed position E2)that may be used to observe positions along the train track in likemanner.

FIG. 10 is a drawing of the illustrative train 110 traveling along thetrain track 104 and two observed positions E_(A) and E_(B) of the train110 along the train track 104, in accordance with some embodiments ofthe technology described herein.

In some embodiments, positions observed using RF signals may be filteredout where the observed positions conflict with RF visibility of theanchor nodes and/or RF subsystem. For example, as shown in FIG. 10 , RFsubsystem 130 is estimated to be at two positions, E_(A) and E_(B).Positions E_(A) and E_(B) may result from a determined range d_(A)observed by an anchor node 102 and possible positions along the geometryof train track 104 where anchor node 102 would be separated from train110 by the determined range d_(A). In some embodiments, estimatedposition E_(B) may be filtered out due to RF invisibility of train 110by antenna A_(a) of anchor node 102. For example, anchor node 102 mayinclude multiple RF subsystems coupled to antennas A_(a) and A_(b) suchthat ranges determined using antennas A_(a) and A_(b) by exchanging oneor more signals with RF subsystem 130 are identified as corresponding tothe antenna that exchanged the signal(s). In this example, thedetermined range d_(A) may be accompanied by an identification ofantenna A_(a) and the angular visibility V_(A) of antenna A_(a) at ranged_(A), such as due to a limited antenna beamwidth of antenna A_(a). Asshown in FIG. 10 , estimated position E_(B) is not within the angular RFvisibility V_(A) of antenna A_(a), and thus may be filtered out.

In some embodiments, estimated position E_(B) may be filtered out due toRF invisibility of anchor node 102 from RF system 130 at estimatedposition E_(B). For example, anchor node 102 may include a single RFsubsystem coupled to antennas A_(A) and A_(B) such that rangesdetermined using antennas A_(A) and A_(B) are indistinguishable as towhich antenna A_(A) and A_(B) exchanged the signal(s) with RF subsystem130. In this example, only one of estimated positions E_(A) and E_(B)would make anchor node 102 visible to RF subsystem 130 due to itsangular RF visibility. As shown in FIG. 10 , RF subsystem has an angularRF visibility V_(CA) at the determined range d_(A) from estimatedposition E_(A) and an angular RF visibility V_(CB) at the determinedrange d_(A) from estimated position E_(B), and anchor node 102 is not inthe angular RF visibility V_(CB), so it may be filtered out.

It should be appreciated that filtering techniques are described hereinby way of illustrative examples and are not limited by the relationshipbetween the number of antennas and RF subsystems within an anchor node.It should also be appreciated that other modalities such as GNSS may besimilarly filtered out based on known RF visibility between satellitesand GNSS antennas, such as when an estimated position resulting from aGNSS observation would place the train inside a tunnel where there is noRF visibility from satellites.

FIG. 11 is a drawing of an illustrative train car 112 having a motiondetermination system 120 onboard that is traveling along a train tracktoward an anchor node 102, in accordance with some embodiment of thetechnology described herein.

In some embodiments, the train car 112 shown in FIG. 11 may have amotion determination system 120 onboard, including an RF subsystem, GNSSsubsystem, and/or one or more IMUs as motion observation modalities,such as described herein in connection with FIGS. 1-8 . In someembodiments, the motion determination system 120 may further include oneor more processors configured to convert motion characteristicobservations from the RF subsystem, GNSS subsystem, and/or IMU(s) fromthe individual reference frames of some or each of the motionobservation modalities to the reference frame of the track geometry.

In some embodiments, each motion observation modality onboard train car112 may be associated with its own reference frame in 3D space. In theexample shown in FIG. 11 , the motion determination system 120 onboardtrain car 112 may have an RF subsystem with at least one RF antenna in afirst position onboard train car 112 (e.g., at or near the front),resulting in the illustrated reference frame OR for the RF subsystem(e.g., centered at the RF antenna(s)). The motion determination system120 may also have a GNSS subsystem with at least one GNSS receiver in asecond position onboard train car 112 (e.g., near the center of thefront-to-back length of train car 112), resulting in the illustratedreference frame O_(G) for the GNSS subsystem. The motion determinationsystem 120 may also have one or more IMU(s) in a third position onboardtrain car 112 (e.g., between the GNSS subsystem and the RF subsystem),resulting in the illustrated reference frame O_(I) for the IMU(s). Inthe example illustrated in FIG. 11 , each motion observation modalityreference frame O_(R), O_(G), and O_(I) is offset in position from theothers. Moreover, as shown in FIG. 11 , the reference frame O_(I) of theIMU(s) is also angularly offset from the other motion observationmodality reference frames O_(R) and O_(G).

While offsets are shown in FIG. 11 in one plane, it should beappreciated that offsets may be in 3D space. For example, referenceframe OR is shown in FIG. 11 offset from reference frame O_(G) in thedirections of the length and height of the train, reference frames ORand O_(G) may be alternatively or additionally offset in the directionof the width of the train, although not shown in FIG. 11 .

In some embodiments, the geometry of the track on which train car 112 istraveling may be associated with a reference frame. For example, themotion determination system 120 may be in communication with a traincontrol system (e.g., onboard the same or another train car 112) that isconfigured to control operation of the train and/or to communicatemotion information to a central control system (e.g., a centralcommunications-based train control (CBTC) controller). The train controlsystem and/or central control system may be associated with theillustrated reference frame O_(C). In some embodiments, reference frameO_(C) may be coordinated with the geometry of the train track, althoughin other embodiments reference frame O_(C) may be offset from thegeometry of the train track. As shown in FIG. 11 , the reference frameO_(C) may be offset in position and/or angularly offset from the motionobservation modality reference frames. In some embodiments, such offsetsmay be measured and saved in memory for the processor(s) of motiondetermination system 120 to take into account. In some embodiments,modality reference frames may be offset from the reference frame of thegeometry of the train track, which in turn may be offset from thereference frame of the train control system and/or central controlsystem.

In some embodiments, the processor(s) of the motion determination system120 onboard train 112 may be configured to take differences in motionobservation modality reference frames into account when convertingobserved motion characteristics from the motion determination modalitiesto a frame of a geometry of a train track. For example, as shown in FIG.11 , the RF subsystem associated with reference frame OR may beconfigured to exchange RF signals with the illustrated anchor node 102to determine a distance d separating the RF subsystem from the anchornode 102. In this example, the processor(s) of the motion determinationsystem 120 onboard train 112 may be configured to take into account thevector offset O_(R)-O_(C) (e.g., in 3D space) when using the determineddistance d as a basis for an observed position of train car 112. Forinstance, the distance d and the known location of the anchor node 102may indicate two possible positions along the train track within thereference frame OR (e.g., such as shown in FIG. 9 ), and the vectoroffset O_(R)-O_(C) may indicate that one of the two possible positionswould make the anchor node 102 RF invisible to RF subsystem, providing abasis for eliminating that position. Alternatively or additionally, oneof the two possible positions may be close to a position observed usingGNSS subsystem once the offset between reference frames O_(G) and OR istaken into account, providing a basis for eliminating the other possibleposition.

While motion observation modalities are shown in FIG. 11 onboard asingle train car 112, it should be appreciated that such modalities maybe distributed over a number of train cars with position and/ororientation offsets among reference frames of the modalities taken intoaccount.

FIG. 12A is a drawing of an illustrative track segment 200 from a firstpoint P to a second point Q and a point R at which a train is observedto be positioned, in accordance with some embodiments of the technologydescribed herein. In some embodiments, track segment 200 may be one of aplurality of track segments stored in memory 144 indicating the geometryof a train track. For example, track segment 200 may be a segment oftrack 104 shown in FIG. 9 . An adjacent track segment starting at P′ isshown adjacent point Q. For example, point Q may be linked to point P′in memory 144 indicating that the track segment starting at point P′ isthe next segment from track segment 200. In some embodiments, geographicpositions in 3D space corresponding points P, Q, and other points alongtrack segment 200 may be stored in memory 144, and the geographicpositions in 3D space may be used for integrating motion observationswith the geometry of the train track.

In some embodiments, processor(s) 142 may be configured to integratemotion observations from one or more modalities with the geometry of atrain track to determine motion characteristics of a train travelingalong the train track. For example, in FIG. 12A, track segment 200 mayhave a geometry from point P to point Q over a distance L, and theobservations received from the modality or modalities may include anobserved position R. For instance, observed position R may be atriangulated position (e.g., E4′ in FIG. 9 ) indicated in GNSS datareceived from GNSS subsystem 150. In this example, points along tracksegment 200 may have positions in 3D space corresponding to positionsalong the track geometry stored in memory 144.

In some embodiments, processor(s) 142 may be configured to integrate theobserved position R with track segment 200 by determining a point alongtrack segment 200 having a minimum distance to observed position R. Forexample, in FIG. 12A, multiple points P_(i) and P_(j) along tracksegment 200 have different distances d_(i) and d_(j) to point R. In thisexample, point P_(i) may be selected as the closest point to point Rbecause distance d_(i) may be the shortest distance to point R of anypoint on track segment 200.

In some embodiments, processor(s) 142 may be configured to integrate theobserved position R with multiple track segments to determine whichtrack segment contains the closest point along the train track to theobserved position R. For example, processor(s) 142 may be configured torepeat the process of integrating observed position R as describedherein for track segment 200 for a plurality of track segments anddetermine a vector distance from the starting point of the segment tothe point along the segment determined to have the minimum distance topoint R. For example, in FIG. 12A, the vector distance from P to P_(i)is denoted S_(i). In this example, S_(i) is greater than zero (in thedirection from point P to point Q) and less than the length L of tracksegment 200, from which the processor(s) 142 may be configured todetermine that track segment 200 contains the closest point along thetrack to observed position R. Accordingly, the processor(s) 142 may beconfigured to determine that point P_(i) in track segment 200 is theclosest point to observed position R, and thus point P_(i) may be analong-track observed position (e.g., E4) for the observed position R. Insome embodiments, the processor(s) 142 may be configured to determinethe vector distance S_(i) to the closest point P_(i) to point R usingthe following equation:

S _(i) =PR●u  (1)

where PR is the vector from point P to point R and u is a unit vector inthe direction of track segment 200 from point P to point Q.

For other track segments, such as the segment beginning with point P′,the vector distance to the closest point along the track segment may benegative (e.g., toward point P_(i) of track segment 200), indicatingthat the segment beginning with point P′ does not contain the closestpoint along the track to observed position R. Likewise, for the tracksegment preceding track segment 200, the vector distance to the closestpoint along the track segment may be greater than the length of thetrack segment, also indicating that that track segment t does notcontain the closest point along the track to observed position R.

In some embodiments, point P_(i) may be identified as the closest pointalong the train track to observed position R using geographic points in3D space for points P, and R, and processor(s) 142 may be configured touse a track geometry point stored in memory 144 corresponding to pointP_(i) in geographic 3D space for motion determination based on theintegration.

FIG. 12B is a drawing of the illustrative track segment 200 and a pointR′ from which the train is observed to be separated by a distance d, inaccordance with some embodiments. In some embodiments, processor(s) 142may be configured to integrate motion observations from one or moremodalities with the geometry of a train track where the observationsinclude an observed distance d from a known point R′. For instance,known point R′ may be a known location of an anchor node 102 anddistance d may be a distance indicated in range data (e.g., an arrivaltime of an RF signal) received from RF subsystem 130 in response to RFsignals exchanged between RF subsystem 130 and the anchor node 102. Inthis example, point R′ may be a geographic point in 3D space.

In some embodiments, processor(s) 142 may be configured to integrate thedistance d and known point R′ with track segment 200 by determining oneor more points along track segment 200 having the distance d to theknown point R′. For example, in FIG. 12B, multiple points P_(i)′ andP_(j)′ along and in the vicinity of track segment 200 are positioned atdistance d from known point R′, with a vector distance S_(i)′ separatingpoint P from point P_(i)′ and a vector distance S_(i)′ separating pointP from point P_(j)′. In this example, the processor(s) 142 may beconfigured to determine that point P_(i)′ is within track segment 200and point P_(j)′ is not, such as by determining that the vector distanceS_(i)′ is nonzero in the direction of track segment 200 and less thanthe length L of track segment 200, whereas the vector distance S_(i)′ isnegative in the direction of track segment 200. In some embodiments, theprocessor(s) 142 may be configured to determine the vector distancesS_(i)′ and S_(i)′ as roots, solving for S using the quadratic formula,in the following equation approximating the range circle of distance dabout known point R′:

S ²+2S[v●(P−R′)]+∥P−R′∥ ² −d ²=0  (2)

where v is a unit vector in the direction of track segment 200 and P−R′is the vector distance between points P and R′.

In some embodiments, processor(s) 142 may be configured to integrate theknown point R′ and distance d with multiple track segments to determinewhich track segment contains the one or more points at the distance dfrom the known point R′. For example, processor(s) 142 may be configuredto repeat the process of integrating known point R′ and distance d asdescribed herein for track segment 200 for a plurality of track segmentsand determine one or more points along the track at the distance d fromknown point R′. For example, in FIG. 12B, the processor(s) 142 may beconfigured to determine that point P_(i)′ is within track segment 200and may form the basis for an observed position (e.g., E2). At the sametime, the processor(s) 142 may be configured to determine that pointP_(j)′ is not within track segment 200 since the vector distance S; isless than zero (in the direction from point P to point Q), and so theprocessor(s) 142 may be configured to determine that point P_(j)′ is ina different track segment. Accordingly, the processor(s) 142 may beconfigured to determine that point P_(j)′ is the basis for a differentobserved position (e.g., E1).

In some embodiments, points P_(i)′ and P_(j)′ may be identified asobserved positions of the train along the train track using geographicpoints in 3D space for points P_(i)′, P_(j)′, and R′, and processor(s)142 may be configured to use track geometry points stored in memory 144corresponding to points P_(i)′ and P_(j)′ in geographic 3D space formotion determination based on the integration.

FIG. 12C is a drawing of the illustrative track segment 200 and twopoints R₁ and R₂ from which the train is observed using RF signalshaving different arrival times, in accordance with some embodiments ofthe technology described herein. In some embodiments, processor(s) 142may be configured to integrate motion observations from one or moremodalities with the geometry of a train track where the observationsinclude an observed difference in arrival times of RF signals exchangedbetween the train and anchor nodes 102 located at respective knownpoints R₁ and R₂. For example, the difference in arrival times (e.g.,iTDOA or TDOA) of the RF signals (e.g., at the train or at the anchornodes 102) may be due to a difference in distances between the train andthe respective known points R₁ and R₂. In the example illustrated inFIG. 12C, points R₁ and R₂ may be geographic points in 3D space.

In some embodiments, processor(s) 142 may be configured to integrate adifference in arrival times of RF signals and known points R₁ and R₂ ofanchor nodes 102 that transmitted or received the RF signals with atrack segment 200 by determining one or more points along track segment200 consistent with the difference in arrival times. For example, inFIG. 12C, multiple points P_(i)″ and P_(j)″ along and in the vicinity oftrack segment 200 are positioned at the same difference in distance fromknown points R₁ and R₂, as the distance d_(1i) from point P_(i)″ topoint R₁ may be less than the distance d_(2i) from point P_(i)″ to pointR₂ by the same difference as the distance d_(1j) from point P_(j)″ topoint R₁ may be less than the distance d_(2j) from point P_(j)″ to pointR₂. For instance, the difference in distance may be derived from thedifference in arrival times. Also shown in the example of FIG. 12C, avector distance S_(i1)′ separates point P from point P_(i)″ and a vectordistance Sj₁″ separates point P from point P_(j)″. In this example, theprocessor(s) 142 may be configured to determine that point P_(i)″ iswithin track segment 200 and point P_(j)″ is not, such as by determiningthat the vector distance S_(i)″ is nonzero in the direction of tracksegment 200 and less than the length L of track segment 200, whereas thevector distance S_(j)″ is negative in the direction of track segment200. In some embodiments, the processor(s) 142 may be configured todetermine the vector distances S_(i)″ and S_(j)″ as intersectionsbetween a track segment and the set of points consistent the differencein arrival times of signals received at or from anchor nodes at pointsR₁ and R₂. For example, the vector distances S_(i)″ and S_(j)″ may besolutions for S in the following equation:

∥P−R ₁ +Sv∥−νP−R ₁ +Sv∥=c(t ₁ −t ₂)  (3)

where c is the speed of light, t₁ is the time of arrival of a signal ator from a first anchor node located at point R₁, t₂ is the time ofarrival of a signal at or from a second anchor node located at point R₂,v is a unit vector in the direction of track segment 200, P−R₁ is thevector distance between points P and R₁ and P−R₂ is the vector distancebetween points P and R₂.

In some embodiments, processor(s) 142 may be configured to integrate theknown points R₁ and R₂ and a difference in arrival times of RF signalswith multiple track segments to determine which track segment containsthe one or more points consistent with the difference in arrival times.For example, processor(s) 142 may be configured to repeat the process ofintegrating known points R₁ and R₂ and a difference in arrival times ofRF signals as described herein for track segment 200 for a plurality oftrack segments and determine one or more points along the trackconsistent with the difference in arrival times of RF signals receivedat or from anchor nodes at known points R₁ and R₂. For example, in FIG.12C, the processor(s) 142 may be configured to determine that pointP_(i)″ is within track segment 200 and may form the basis for anobserved position. At the same time, the processor(s) 142 may beconfigured to determine that point P_(j)″ is not within track segment200 since the vector distance S_(j)″ is less than zero (in the directionfrom point P to point Q), and so the processor(s) 142 may be configuredto determine that point P_(j)″ is in a different track segment.Accordingly, the processor(s) 142 may be configured to determine thatpoint P_(j)″ is the basis for a different observed position.

In some embodiments, points P_(i)″ and P_(j)″ may be identified asobserved positions of the train along the train track using geographicpoints in 3D space for points P_(i)“, P_(j)”, R₁ and R₂, andprocessor(s) 142 may be configured to use track geometry points storedin memory 144 corresponding to points P_(i)″ and P_(j)″ in geographic 3Dspace for motion determination based on the integration.

FIG. 13 is a drawing of an example graph 300 of motion characteristicsof a train generated by a system for determining motion characteristicsof a train, in accordance with some embodiments of the technologydescribed herein. In FIG. 13 , graph 300 includes vertices 302, 304,306, 308, 310, 312, and 314 arranged in a line, each of which mayinclude motion and/or motion determination characteristics of the trainat particular time t₁-t_(n). FIG. 13 also shows an anchor node 102 usedto determine motion and/or motion determination characteristics forvertices 302, 304, and 308 and a satellite 106 used to determine motionand/or motion determination characteristics for vertices 308, 310, and314. For example, vertices 302 to 308 may correspond to a time t₁ to t₄in which the train is moving in a tunnel 320 and RF visible to one ormore anchor nodes 102, whereas vertices 308 to 314 may correspond to atime t₄ to t_(n) in which the train is moving outdoors 340 and RFvisible to one or more satellites 106. In this example, the train may benear the start or end of tunnel 320 at time t₄ so as to be RF visible toboth anchor node(s) 102 and satellite(s) 106. In some embodiments,vertices of graph 300 may be determined by processor(s) 142 and storedin a memory 144 of a motion determination system 120, as describedherein. For example, motion characteristics for each vertex may bestored in memory 144. While the vertices of graph 300 are shown in FIG.13 arranged in a line, it should be appreciated that the vertices may bealternatively or additionally positioned along the geometry of the traintrack and/or have any disposition, such as including curves and/or loopsrather than or in addition to a straight line.

In some embodiments, each vertex in graph 300 may include motion and/ormotion determination characteristics of the train at a particular timet₁-t_(n). For example, the motion characteristics may include a positionof the train, a velocity of the train, an acceleration of the train, apitch of the train, and/or other motion characteristics as describedherein. Motion determination characteristics of the train may includegyroscope and/or accelerometer biases for the IMU(s) 146. For example,the biases may change as the gyroscope and/or accelerometer drift overtime, impacting determination of motion characteristics. In someembodiments, the vertices may be spaced evenly in time such that t₃−t₂is equal to t₂−t₁. In some embodiments, the vertices may not be evenlyspaced in time, such that t₃−t₂ is greater than or less than t₂−t₁.

In some embodiments, a motion determination system 120 onboard the trainmay be configured to determine the motion and/or motion determinationcharacteristics of each vertex. In FIG. 13 , vertex 302 includes motioncharacteristics that may be determined using RF signals transmittedbetween the motion determination system 120 and one of the anchor nodes102, as indicated by the dotted arrow from the anchor node 102 to vertex302. For example, an RF subsystem 130 of the motion determination system120 may be configured to determine and provide a distance between thetrain and the anchor node 102 to processor(s) 142, which may beconfigured to determine the motion characteristics using the determineddistance in combination with a known position of the anchor node 102 anda geometry of the train track each stored in memory 144.

Similarly, vertex 310 includes motion characteristics that may bedetermined using GNSS signals received from one or more satellites 106,as indicated by the dotted arrow from satellite(s) 106 to vertex 310.For example, a GNSS subsystem 150 of the motion determination system 120may be configured to determine and provide a triangulated position ofthe GNSS subsystem 150 to processor(s) 142, which may be configured todetermine the motion characteristics using the triangulated position incombination with the geometry of the train track stored in memory 144.

Motion characteristics of vertex 302 may also be determined using theIMU(s) 146 of the motion determination system 120. For example, if thereis a conflict between the motion characteristics determined using RFsignals and the IMU(s) 146, the motion characteristics determined usingRF signals may be used to correct motion characteristics determinedusing the IMU(s) 146, such as by updating gyroscope and/or accelerometerbiases of the motion characteristics of vertex 302 to reduce and/orminimize a residual between the motion characteristics determined usingthe RF signals and the IMU(s).

As shown in FIG. 13 , the train may be within RF transmission range ofdifferent anchor nodes 102 at different times. For example, the trainmay be within RF transmission range of the same anchor node 102 at timest₁, t₂, and t₄, and/or within range of multiple anchor nodes 102 at someor each of times t₄, t₅, and t_(n). In some embodiments, motiondetermination system 120 may prioritize only a subset of anchor nodes102 within RF transmission range of the train, such as anchor nodes 102that are positioned closest to the train. For example, RF subsystem 130of motion determination system 130 may be configured to transmit RFsignals to each anchor node 102 (e.g., sequentially) and only provide apredetermined number of the smallest determined distances toprocessor(s) 142 for determination of motion characteristics. At timet₄, the train is within RF transmission range of an anchor node 102 andwithin GNSS reception range of one or more satellites 106. In someembodiments, motion determination system 120 may prioritize GNSS databased on GNSS signals received from the satellite(s) 106 over range databased on RF signals exchanged with anchor node(s) 102.

While the train is moving in tunnel 320, vertices 302, 304, and 308include motion characteristics determined using RF signals transmittedbetween the motion determination system 120 and the anchor node(s) 102,whereas vertex 306 includes motion characteristics that are notdetermined using RF signals. For example, at time t₃, no anchor nodes102 may be in RF transmission range of the train. In some embodiments,motion characteristics of vertex 306 may be determined using the IMU(s)146 of motion determination system 120. For example, the IMU(s) 146 mayprovide signals indicative of the train's acceleration along thegeometry of the train track that may be used to determine motioncharacteristics in combination with motion characteristics determined atprevious vertices (e.g., using motion characteristics of vertices 302and/or 304 for vertex 306). In some embodiments, to compensate for driftin signals from IMU(s) 146, motion characteristics determined usingIMU(s) 146, such as for vertex 306, may be updated when motioncharacteristics are next able to be determined using RF signals, such asfor vertex 308 in graph 300. In some embodiments, motion characteristicsdetermined using IMU(s) 146 may be stored with associated uncertaintiesfor the motion characteristics that may be useful in updating the motioncharacteristics at a later time.

While the train is moving outdoors 340, vertices 308, 310, and 314include motion characteristics determined using GNSS signals received bythe motion determination system 120 from the satellite(s) 106, whereasvertex 312 includes motion characteristics that are not determined usingGNSS signals. For example, at time t_(n)_i, no satellites 106 may be RFvisible to GNSS subsystem 150. In some embodiments, motioncharacteristics of vertex 312 may be determined using the IMU(s) 146 ofmotion determination system 120. For example, the IMU(s) 146 may providesignals indicative of the train's acceleration along the geometry of thetrain track that may be used to determine motion characteristics incombination with motion characteristics determined at previous vertices(e.g., using motion characteristics of vertices 308 and/or 310 forvertex 312). In some embodiments, to compensate for drift in signalsfrom IMU(s) 146, motion characteristics determined using IMU(s) 146,such as for vertex 312, may be updated when motion characteristics arenext able to be determined using GNSS signals, such as for vertex 314 ingraph 300. In some embodiments, motion characteristics determined usingIMU(s) 146 may be stored with associated uncertainties for the motioncharacteristics that may be useful in updating the motioncharacteristics at a later time.

In one example, each vertex of graph 300 may include the followingmotion and motion determination characteristics: (1) a position of thetrain along the geometry of the train track; (2) a velocity of the trainalong the geometry of the train track (e.g., based on the track segmentin which the train is observed, estimated, and/or determined to bemoving); (3) a pitch of the train rotationally about a pitch axisparallel to the ground below the train track and perpendicular to thegeometry of the train track; (4) an accelerometer bias along thegeometry of the train track; (5) an accelerometer bias along a yaw axisperpendicular to the pitch axis and the geometry of the train track; (6)a gyroscope bias along the pitch axis; and/or (7) an orientation of thetrain along the geometry of the train track (e.g., whether the train isfacing forward or rearwards). In this example, the position of the trainalong the geometry of the train track may be an absolute position withreference to the geometry and length of the train track (e.g., stored inmemory 144 and/or associated with geographic coordinates), and theorientation of the train may be fixed during initialization of themotion determination system 120 and may remain static during operation.In this example, the position, velocities, pitch, and orientation of thetrain are motion characteristics and the accelerometer and gyroscopebiases are motion determination characteristics used to determine motioncharacteristics, as described further herein.

In some embodiments, motion determination characteristics may beinitialized to a predetermined value (e.g., 0) and updated as motioncharacteristics are determined over time, as described further herein.In some embodiments, motion determination characteristics may becalibrated to certain values when the train is expected to have zeroacceleration (e.g., when the train is not moving).

In some embodiments, each vertex may also include an associateduncertainty of each motion characteristic. In some embodiments, theassociated uncertainties may be used to determine whether to adjustmotion determination characteristics. For example, it may be preferableto adjust motion determination characteristics that impact a velocityand/or position having a high uncertainty rather than adjust motiondetermination characteristics that impact a velocity and/or positionhaving a low uncertainty.

In this example, the motion determination system 120 may apply aplurality of constraints to the motion and/or motion determinationcharacteristics. Motion determination system 120 may adjust some or allof the motion characteristics of one or more vertices to reduce and/orminimize the residuals of each constraint. A first possible constraintincorporating range data received using RF subsystem 130 is given by theequation below:

range_residual=rangepos_alongtrack+RFsubsys_offset−pos_map  (4)

where rangepos_alongtrack is an observed position of the train along thegeometry of the train track determined using a distance between ananchor node and RF subsystem 130, pos_map is the position beingdetermined, and RFsubsys_offset is a distance indicating a position ofRF subsystem 130 (e.g., RF antennas of the subsystem) along the train.In some embodiments, the first possible constraint may only be appliedwhen a distance between the train and an anchor node can be determined,such as when the train is within RF transmission range of an anchor node(e.g., for vertices 302, 304, and 308). For example, if one or moreanchor nodes are RF visible, range_residual as calculated above bereturned as the range residual, whereas if no anchor nodes are RFvisible, the range residual may be returned having a zero value.

In some embodiments, one or more constraints may incorporate GNSS datafrom GNSS subsystem 150. Such constraints may be applied at each vertexfor which the train is RF visible to one or more satellites 106. Asecond possible constraint incorporating data from GNSS subsystem 150 isgiven by the equation below:

GNSS_residual=GNSSpos_alongtrack+GNSSsubsys_offset−pos_map  (5)

where GNSSpos_alongtrack is an observed position of the train along thegeometry of the train track, pos_map is the position being determined,and GNSSsubsys_offset is a distance indicating a position of GNSSsubsystem 150 (e.g., GNSS antennas) along the train.

In some embodiments, a plurality of constraints may incorporate datafrom IMU(s) 146. Such constraints may be applied at each vertex, even ifthe train is not within RF transmission range of an anchor node or RFvisible to any satellites. A third possible constraint incorporatingdata from IMU(s) 146 is given by the equation below:

pos_residual=pos_2−(pos_1+Vavg*dt)  (6)

where pos_2 is the position of the train along the geometry of the traintrack for the current vertex (e.g., vertex 304), pos_1 is an observed,estimated, and/or determined position of the train along the geometry ofthe train track for a previous vertex (e.g., vertex 302), Vavg is anobserved average velocity of the train along the train track betweenpos_1 and pos_2 (e.g., using an observed, estimated and/or determinedvelocity of one or more previous vertices), and dt is a time elapsedbetween the current vertex and the previous vertex or vertices (e.g.,t₂−t₁). In some embodiments, the average velocity Vavg may be calculatedusing velocities described further herein.

A fourth possible constraint is given by the equation below:

Vx_residual=V_2−(V_1+est_accelx*dt)  (7)

where V_2 is the velocity of the train along the geometry of the traintrack for the current vertex (e.g., vertex 304), V_1 is an observed,estimated, and/or determined velocity of the train along the geometry ofthe train track for a previous vertex (e.g., vertex 302), est_accelx isan observed acceleration of the train along the geometry of the traintrack between V_1_ and V_2, and dt is the time elapsed between thecurrent vertex and the previous vertex or vertices (e.g., t₂−t₁).

In some embodiments, the observed acceleration est_accelx may bedetermined using current IMU data, as given by the equation below:

est_accelx=IMU_accelx−gravityx−accel_bias_x  (8)

where IMU_accelx is an acceleration of the train along the geometry ofthe train track determined using one or more signals output from IMU(s)146, gravityx is the gravitational acceleration of the train along thegeometry of the train track, and accel_bias_x is the accelerometer biasalong the geometry of the train track. In some embodiments, IMU_accelxmay be taken along the geometry of the train track when the axis of theIMU(s) used to obtain IMU_accelx aligns with the front-to-back directionof the train, which is assumed to align with the geometry of the traintrack. In some embodiments, IMU_accelx may be obtained by integratingthe axial acceleration of the IMU(s) with the geometry of the traintrack. For example, a dot product may be computed between axialacceleration along one or more axes of the IMU(s) and the geometry of atrack segment the train is observed, estimated, and/or determined to betraveling along.

In some embodiments, the gravitational acceleration gravityx may bedetermined using current IMU data and a previously observed, estimated,and/or determined pitch of the train rotationally about the pitch axis,as given in the equation below:

gravityx=(gravity/est_gyro)*(cos(P_1)−cos(P_2))/dt  (9)

where gravity is the gravitational constant of approximately 9.8 m/s²,est_gyro is an observed acceleration of the train rotationally about thepitch axis, P_2 is an observed pitch of the train rotationally about thepitch axis for the current vertex (e.g., vertex 304), P_1 is anobserved, estimated, and/or determined pitch of the train rotationallyabout the pitch axis for a previous vertex (e.g., vertex 302), and dt isthe time elapsed between the current vertex and the previous vertex(e.g., t₂−t₁). In some embodiments, the gravitational accelerationgravityx may be taken along the geometry of the train track as describedfor IMU acceleration.

In some embodiments, the observed acceleration est_gyro may bedetermined using current IMU data as given by the equation below:

est_gyro=IMU_gyro_y−gyro_bias_y  (10)

where IMU_gyro_y is an acceleration of the train rotationally about thepitch axis observed using one or more signals output from IMU(s) 146 andgyro_bias_y is the gyroscope bias along the pitch axis. In someembodiments, the gyroscope bias along the pitch axis may be adjusted tobe transverse to the geometry of the train track. A fifth possibleconstraint is given by the equation below:

Vz_residual=est_accelz*dt  (11)

where est_accelz is an observed acceleration of the train along the yawaxis for the current vertex (e.g., vertex 304) obtained using observed,estimated, and/or determined motion and/or motion determinationcharacteristics of a previous vertex (e.g., vertex 302) and dt is thetime elapsed between the current vertex and the previous vertex (e.g.,t₂−t₁).

In some embodiments, the observed acceleration of the train along theyaw axis may be obtained using current IMU data and a previouslyobserved, estimated, and/or determined pitch of the train rotationallyabout the pitch axis, as given by the equation below:

est_accelz=IMU_accelz−gravityz−accel_bias_z  (12)

where IMU_accelz is an acceleration of the train along the yaw axisdetermined using one or more signals output from IMU(s) 146, gravityz isthe gravitational acceleration of the train along the yaw axis, andaccel_bias_z is the accelerometer bias along the yaw axis.

In some embodiments, the gravitational acceleration gravityz may beobtained using current IMU data and a previously observed, estimated,and/or determined pitch of the train rotationally about the pitch axis,as given by the equation below:

gravityz=(gravity/est_gyro)*(sin(P_1)−sin(P_2))/dt  (13)

where est_gyro, P_1, P_2, and dt are the same as described above forgravityx.

A sixth possible constraint is given by the equation below:

pitch_residual=P_2−(P_1+est_gyro*dt)  (14)

where P_2, P_1, est_gyro, and dt are the same as described above forgravityx and gravityz.

In some embodiments, motion determination system 120 may be configuredto reduce and/or minimize each residual by adjusting the motioncharacteristics and/or motion determination characteristics of thecurrent vertex and/or previous vertices. For example, pitch_residual maybe reduced and/or minimized upon adjusting gyro_bias_y. When gyro_bias_yis adjusted by making it larger or smaller, gravityx and gravityz may beadjusted accordingly, thereby having an effect on Vz_residual andVx_residual. The effect on Vz_residual and Vx_residual may be used, atleast in part, to determine whether to make gyro_bias_y larger orsmaller. Similarly, pos_2 may be set equal to pos_map, and pos_residualmay be reduced and/or minimized by adjusting pos_1 and/or Vavg, whichmay also have an effect on Vz_residual and Vx_residual.

In some embodiments, processor(s) 142 of motion determination system maybe configured to determine the motion and/or motion determinationcharacteristics of the current and/or previous vertices using a best-fitoptimization technique, such as a graph-based optimization technique. Insome embodiments, the graph-based optimization technique may includepose graph optimization, factor graph optimization, and/or non-linearleast squares optimization. In some embodiments, such techniques mayemploy a Bayesian estimation algorithm (e.g., executed on theprocessor(s)), such as including a Bayesian filter. In some embodiments,the filter may include an extended Kalman filter, an unscented Kalmanfilter, and/or a particle filter.

In some embodiments, each vertex of graph 300 may alternatively oradditionally include a roll of the train rotationally a roll axisparallel to the geometry of the train track and/or a yaw of the trainrotationally about the yaw axis.

FIG. 14 is a drawing of illustrative components of the system 120 fordetermining motion characteristics of a train, including one or moreprocessor(s) 142 configured to execute a recursive state estimator bank190, in accordance with some embodiments of the technology describedherein. In some embodiments, recursive state estimator bank 190 mayinclude one or more recursive state estimators 192 configured to trackestimated motion and/or motion characteristics of the train over timeand a recursive state estimator selector 194 configured to select asubset of the motion and/or motion determination characteristics fromrecursive state estimator(s) 192 as one or more outputs 196. In someembodiments, processor(s) 142 may be configured to determine motionand/or motion characteristics of the train using output(s) 196.

In some embodiments, recursive state estimators 192 may include one ormore linear recursive state estimators, such as Kalman filters and/orKalman smoothers. Alternatively or additionally, recursive stateestimators 192 may include one or more non-linear recursive stateestimators, such as extended Kalman filters, extended Kalman smoothers,unscented Kalman filters, and/or unscented Kalman smoothers,Monte-Carlo-based recursive state estimators such as particle filters,Markov chain Monte-Carlo filters, sequential importance sampling-basedfilters, and/or any other suitable stochastic simulation methods. Insome embodiments, by including one or more recursive state estimators192, recursive state estimator bank 190 is itself a recursive stateestimator.

In some embodiments, processor(s) 142 may be configured to executerecursive state estimator bank 190 to determine motion characteristicsof a train using observations from one or more modalities of motiondetermination system 120. For example, as shown in FIG. 14 ,processor(s) 142 may be configured to receive and provide range datafrom RF subsystem 130, GNSS data from GNSS subsystem 150, and/or IMUdata from IMU(s) 146 as input(s) to recursive state estimator bank 190.In some embodiments, the observations may include one or more distancesobserved between RF subsystem 130 and one or more anchor nodes 102, oneor more positions and/or velocities observed using GNSS signals receivedby GNSS subsystem 150, and/or one or more accelerations observed usingIMU(s) 146. In some embodiments, observations received by processor(s)142 may further include sensor information, such as indications of whichGNSS satellites transmitted the signals from which the GNSS data wasobtained, which anchor nodes RF subsystem 130 interacted with to obtainthe range data, and/or which IMU(s) 146 produced the IMU data.

In some embodiments, processor(s) 142 may be configured to receiveobservations that include geographic positions in 3D space, integratethe observed geographic positions to geographic positions along thegeometry of the track, and/or convert the geographic positions along thegeometry of the track to corresponding track geometry positions storedin memory 144 to provide to recursive state estimator bank 190. In thisexample, recursive state estimator(s) 192 of recursive state estimatorbank 190 may be configured to use track geometry points to track motionand/or motion characteristics. In some embodiments, the observationsand/or integration of observations can give rise to uncertainty (e.g.,covariance) to be factored in by recursive state estimator(s) 192. Forinstance, uncertainty for an observed position and/or velocity can bemodeled using the equation below:

{tilde over (x)} _(i) =Hx _(k) +v _(k)=[1 0]x _(k) +v _(k)  (15)

where v is measurement noise having a gaussian distribution specific tothe modality. In some embodiments, the variance for the measurementnoise value v may be set conservatively for RF distance observations,and/or may factor in dilution-of-precision based on the along-trackcomponent of the measured distance to the anchor node, such as due todistance being taken along a direction that is perpendicular or close toperpendicular with the track geometry. Alternatively or additionally, adifferent measurement noise value v may be used for observations madeusing different anchor nodes. In some embodiments, when x_(k) includesan observed position, the above equation may be modified to incorporatealong-track velocity when provided by a velocity sensing modality (e.g.,GNSS subsystem 150), such as by setting H=[1 0]^(T) and usingmeasurement noise v specific to the velocity sensing modality.Alternatively or additionally, uncertainty for observed position andvelocity may be modeled together, such as by setting H as the identitymatrix and replacing v with a column vector of uncertainties for thecorresponding observations.

In some embodiments, acceleration measurements from IMU(s) 142 may beprojected along the geometry of the track using the following equation:

^(t) a≈ _(s) ^(t) R(sã−(_(w) ^(s) R ^(w) g))  (16)

where ^(t)a is the acceleration of the train in the frame of the trackgeometry, _(s) ^(t)R is the relative orientation from the frame ofIMU(s) 146 to the frame of the track geometry, ^(w)g is the gravityvector, _(w) ^(t)R is the relative orientation from the frame of thegravity vector to the frame of IMU(s) 146, and ^(s)a is the accelerationin the frame of IMU(s) 146 given by the following equation:

^(s) ã=[ ^(s) ã _(x) ^(s) ã _(y) ^(s) ã _(z)]^(T)  (17)

where ^(s)ã_(x), ^(s)ã_(y), and ^(s)ã_(z) are sensed accelerations inthree orthogonal directions (e.g., front to back of the train, left toright of the train, and up and down with respect to the train). Itshould be appreciated that offsets, such as distances between IMU(s) 142and other modalities (e.g., antennas of RF subsystems and/or GNSScomponents) should be taken into account when integrating such data intothe along track frame. Moreover, uncertainties in the gravity vectorand/or relative orientation components should be incorporated intoassociated observational uncertainties provided to the recursive stateestimator bank 190.

It should be appreciated that, in some embodiments, the processor(s) 142may be alternatively or additionally configured to convert and/orintegrate observations with the geometry of the train track usingrecursive state estimators 192, as embodiments are not so limited.

In some embodiments, processor(s) 142 may be configured to filter out atleast some received observations from reaching recursive stateestimator(s) 192. For example, processor(s) 142 may be configured toperform filtering in response to converting observations to the trackgeometry and determining that an observation is inconsistent with theorientation and/or direction of train motion and/or visibility ofsensors onboard the train. For instance, the orientation of the trainmay indicate that an anchor node that contributed to a pair of observedpositions along the track geometry would not be RF visible to and/orfrom an RF subsystem onboard the train at one of the observed positions(e.g., as shown in FIG. 10 ). In response, processor(s) 142 may beconfigured to filter out that observed position rather than providing itto recursive state estimator(s) 192. As another example, an observedposition may be filtered out when inconsistent with the track on whichthe train is traveling, such as in embodiments in which the track onwhich the train is traveling is fixed rather than estimated by therecursive state estimator(s) 192. As yet another example, an observedposition may be filtered out when signals (e.g., RF and/or GNSS) used toobserve the position have an SNR below an appropriate threshold. In someembodiments, filtering observations reduce the computational load onrecursive state estimator bank 190.

In some embodiments, processor(s) 142 may be configured to executerecursive state estimator(s) 192 of recursive state estimator bank 190to track motion and/or motion characteristics of the train based onreceived observations. For example, a recursive state estimator 192 maybe configured to track the position, velocity, and/or acceleration ofthe train and/or associated modality biases (e.g., gyroscope biases)based on the observations. In some embodiments, a recursive stateestimator may be configured to associate an anchor node with eachobservation provided by that anchor node.

In one implementation, a recursive state estimator 192 may apply aconstant velocity model to track motion and/or motion characteristics ofthe train. For instance, the model may be given by the equation below:

$\begin{matrix}{x_{k + 1} = {{{\Phi x_{k}} + {\Gamma\omega_{k}}} = {{\begin{bmatrix}1 & \tau \\0 & 1\end{bmatrix}x_{k}} + {{\tau\begin{bmatrix}{\frac{1}{2}\tau} \\1\end{bmatrix}}\omega_{k}}}}} & (18)\end{matrix}$

where x_(k) is a column vector having position as the first componentand velocity as the second component, ω_(k) is white noise accelerationhaving a gaussian distribution dependent on process noise tuned tomaximum acceleration expected to be experienced, and r is a timestepbetween states.

In some embodiments, acceleration measurements may be incorporated intothe constant velocity model by replacing the ω_(k) term witha_(k)+ω_(k), where a_(k) is the acceleration ^(t)a_(x) along the trackin the frame of the track geometry at time t=t_(k).

In the same or another implementation, a recursive state estimator 192may apply a constant acceleration model to track motion and/or motioncharacteristics of the train. For instance, the model may be given bythe equation below:

$\begin{matrix}{x_{k + 1} = {{{\Phi x_{k}} + {\Gamma\omega_{k}}} = {{\begin{bmatrix}1 & \tau & {\frac{1}{2}\tau^{2}} \\0 & 1 & \tau \\0 & 0 & 1\end{bmatrix}x_{k}} + {\begin{bmatrix}{\frac{1}{2}\tau^{2}} \\\tau \\1\end{bmatrix}\omega_{k}}}}} & (19)\end{matrix}$

where ω_(k) is the sum of white noise acceleration co and accelerationfrom IMU(s) 146 taken along the geometry of the train track. In someembodiments, acceleration measurements may be processed as measurementupdates using H=[0 0 1]^(T). For example, acceleration measurements maybe received from one or more IMU(s) when no position measurements arereceived, such as when a train is traveling in a tunnel out ofvisibility of satellites and in a region of the tunnel where the trainis also out of visibility of any anchor nodes.

In the same or another implementation, a recursive state estimator 192may apply a constant jerk model to track motion and/or motioncharacteristics of the train. For instance, the model may be given bythe equation below:

$\begin{matrix}{x_{k + 1} = {{{\Phi x_{k}} + {\Gamma\omega_{k}}} = {{\begin{bmatrix}1 & \tau & {\frac{1}{2}\tau^{2}} & {\frac{1}{6}\tau^{3}} \\0 & 1 & \tau & {\frac{1}{2}\tau^{2}} \\0 & 0 & 0 & \tau \\0 & 0 & 0 & 1\end{bmatrix}x_{k}} + {\begin{bmatrix}{\frac{1}{6}\tau^{3}} \\{\frac{1}{2}\tau^{2}} \\\tau \\1\end{bmatrix}\omega_{k}}}}} & (20)\end{matrix}$

In some embodiments, acceleration measurements may be processed asmeasurement updates using H=[0 0 1 0]^(T).

In some embodiments, process noise variance (e.g., Q=Γq²Γ^(T)) that isset with a high q value takes into account the limited accuracy that isinherent to the assumptive model used (e.g., constant velocity) as anapproximation rather than a perfect reflection of real-world physics. Insome embodiments, process noise variance that is set with a low q valueprovides low-latency estimations, although such estimations may be lessaccurate in some circumstances than when a high q value is used. In thisrespect, selection of an appropriate q value may be a tradeoff betweenaccuracy and computational latency. In some embodiments, q values may beselected to obtain a desired level of accuracy with an acceptable amountof expected latency for the particular application.

In some embodiments, a recursive state estimator 192 may alternativelyor additionally incorporate the orientation and/or direction of movementof the train. For example, the orientation and/or direction of movementof the train may be estimated as in one of two directions (e.g., forwardand backward). In some cases, the orientation and/or direction of motionmay be estimated even when the track is designated for one-way travel,as doing so facilitates determination of whether a train is orientedand/or moving in an improper direction (e.g., rolling backwardsdownhill). Although it should be appreciated that, in some embodiments,the orientation and/or direction of movement of the train and the trackon which the train is estimated to be traveling may be fixed in therecursive state estimator 192 and not subject to change upon receivingupdated observations, depending on the particular application.

In some embodiments, a recursive state estimator 192 may alternativelyor additionally incorporate the track and/or track segment in which thetrain is estimated to be traveling. For example, one or more recursivestate estimators 192 may estimate which track the train is traveling onas part of motion estimation. Alternatively, one or more recursive stateestimators 192 may be fixed to a track rather than estimating the trackon which the train is traveling. In some embodiments, when the trainmoves from one segment to another segment of track (e.g., an estimatedtrack or a track to which the estimator is fixed), a recursive stateestimator 192 may be configured to continue to estimate motion of thetrain in the new track segment using estimates from the previous tracksegment. In other embodiments, when the train moves from one segment toanother segment, a previously accurate recursive state estimator 192 maybecome inaccurate due to only providing estimates in the previoussegment of track and another (e.g., newer) recursive state estimator 192may provide more accurate estimations in the new segment of track.

In some embodiments, processor(s) 142 may be configured to generateand/or update recursive state estimator(s) 192 of recursive stateestimator bank 190 using observations received from one or moremodalities of motion determination system 120. For example, processor(s)142 may be configured to determine whether a received observation iscompatible with motion and/or motion characteristic states tracked byrecursive state estimator(s) 192 of recursive state estimator bank 190and, if so, update the state(s) of the applicable recursive stateestimator(s) 192. In this example, processor(s) 142 may be configured toupdate only one or more recursive state estimators 192 that arecompatible with the observation, and/or generate a new recursive stateestimator 192 based on the observation if no existing recursive stateestimator(s) 192 are compatible with the received observation. Forinstance, processor(s) 142 may be configured initialize the recursivestate estimator(s) 192 to an initial state and/or update the state basedon the received observation.

In some embodiments, processor(s) 142 may be configured to determinewhether a received observation is compatible with a recursive stateestimator 192 by determining if the observation (e.g., an observedposition) is consistent with one or more previous estimations (e.g., apreviously estimated position, velocity, and acceleration). As oneexample, the observed position may be within a predefined range ofpositions that would be likely and/or expected based on a measure ofconsistency (e.g., Euclidean distance, covariance weighted distance,and/or other suitable distance(s)) with respect to the previousestimation(s). As another example, the processor(s) may be configured todetermine whether the observation would result in a current and/or pastestimate violating other constraints, such as indicating that anobserved distance was received using an anchor node beyond the RFvisible range of RF subsystem 130, an observed position is not confinedto the geometry of the train track, and/or the observed position wasreceived via GNSS subsystem 150 while outside the RF visible range ofany satellites.

In some embodiments, processor(s) 142 may be configured to determine,for a recursive state estimator 192, how many anchor nodes have providedobservations that the recursive state estimator 192 has accepted. Forexample, where a recursive state estimator 192 rejects observations fromseveral anchor nodes and instead relies on a relatively small number ofanchor nodes for its estimations, the resulting estimations may beinaccurate. At the same time, some anchor nodes may not be RF visible toantennas onboard the train, and thus an accurate recursive stateestimator 192 may still provide accurate estimations where a majority ofanchor nodes contribute to observations accepted by the recursive stateestimator 192.

In some embodiments, processor(s) 142 may be configured to discard oneor more recursive state estimators 192 if too few received observationsare compatible with the recursive state estimator(s) 192. For example,the processor(s) 142 may be configured to determine, following apredefined period of time since a recursive state estimator 192 wasgenerated, that fewer than a predefined amount of received observationswere determined to be compatible with the recursive state estimator 192.As another example, the processor(s) 142 may be configured to determinethat longer than a predefined period of time has elapsed since areceived observation was determined to be compatible with the recursivestate estimator 192. As yet another example, the processor(s) 142 may beconfigured to determine that the recursive state estimator 192 hasaccepted observations contributed to by too few anchor nodes, such asless than a predefined percentage of anchor nodes that have contributedto a pre-defined number of recent observations and/or to observationsreceived over a predefined period of time.

In some embodiments, the processor(s) 142 may be configured to generateand/or update recursive state estimators 192 for multiple observedpositions along the geometry of the train track derived from a distancemeasurement generated using an anchor node, and the use of multiplerecursive state estimators 192 may facilitate rejecting at least one ofthe observed positions. As one example, one of the recursive stateestimators 192 tracking one of the observed positions may be discarded,indicating that the observed position being tracked was likelyinaccurate. As another example, no existing recursive estimator(s) 192may be compatible with one of the observed positions, whereas severalrecursive estimators 192 may be compatible with the other of theobserved positions, alternatively or additionally indicating that theincompatible observed position was likely inaccurate.

In some embodiments, estimator selector 194 may be configured to selectone or more recursive state estimators 192 to provide output(s) 196based on the recursive state estimator(s) having a lowest measure ofconsistency among estimations. Alternatively or additionally, estimatorselector 194 may be configured to select the recursive stateestimator(s) 192 having a highest rate of compatibility with receivedobservations. In some embodiments, estimator selector 194 may beconfigured to only provide output(s) 196 after a predefined number ofobservations have been received and used to generate and/or updaterecursive state estimator(s) 192, and/or after at least a predefinednumber of received observations have been determined to be compatiblewith at least one recursive state estimator 192, and/or afterobservations to which at least a predefined number and/or percentage ofanchor nodes contributed have been accepted by at least one recursivestate estimator 192 over a predefined period of time.

FIG. 15 is a drawing of an illustrative method 400 for determiningmotion characteristics of a train traveling along a train track, inaccordance with some embodiments of the technology described herein. Insome embodiments, method 400 may be performed using motion determinationsystems 120 described herein. In FIG. 15 , the method 400 includesobtaining one or more observations of motion (e.g., observed position,velocity, and/or acceleration) from one or more motion determinationmodalities (e.g., RF, GNSS, and/or IMU) of a motion determination systemat step 402 and estimating motion of the train, by at least oneprocessor of the motion determination system, at step 404.

In some embodiments, obtaining the observation(s) of motion at step 402may include processor(s) 142 of motion determination system 120receiving range data from RF subsystem 130 (e.g., including an arrivaltime of an RF signal and/or a distance obtained using the arrival time),an observed position and/or velocity from GNSS subsystem 150, and/or anobserved acceleration from IMU(s) 146. For example, the range data fromRF subsystem 130 may be generated using one or more RF signals exchangedbetween RF subsystem 130 and one or more anchor nodes 102. As anotherexample, the observed position and/or velocity (e.g., in 3D space) fromGNSS subsystem 150 may be generated using one or more GNSS signalsreceived by GNSS subsystem 150. As yet another example, the observedacceleration from IMU(s) 146 may be generated using one or moreaccelerations detected by IMU(s) 146. In some embodiments, processor(s)142 may determine one or more observed positions of the train along thetrain track using the range data from RF subsystem 130 and/or theposition(s) from GNSS subsystem 150. For example, processor(s) 142 mayconvert (e.g., integrate) the range data (e.g., distance and/or arrivaltime(s)) and/or GNSS position(s) with the geometry of the train trackusing one or more representations of the geometry of the train trackstored in memory 144, such as described herein including in connectionwith FIGS. 12A-12C.

In some embodiments, estimating motion of the train at step 404 mayinclude processor(s) 142 using the observation(s) of motion obtained atstep 402 to estimate the position, velocity, and/or acceleration of thetrain. For example, processor(s) 142 may generate, update, and/orconstrain estimated motion in a graph (e.g., graph 300 in FIG. 13 )based on the observed position, velocity, and/or acceleration obtainedat step 402. Alternatively or additionally, processor(s) 142 may providethe observation(s) of motion to one or more recursive state estimators(e.g., in recursive estimator bank 190 in FIG. 14 ). In someembodiments, processor(s) 142 may determine the position, velocity,and/or acceleration of the train based on an output of the recursivestate estimator(s) (e.g., output(s) 196 in FIG. 14 ). In someembodiments, the processor(s) may filter out observation(s) (e.g., priorto generating and/or updating a graph or providing to recursive stateestimator(s)) that would be inconsistent with RF and/or GNSS visibility.

FIG. 16 is a drawing of an illustrative method 500 for determiningmotion characteristics of a train traveling along a train track, inaccordance with some embodiments of the technology described herein. Insome embodiments, method 500 may be performed using motion determinationsystems 120 described herein, such as using a recursive state estimatorbank executed by processor(s) 142. As shown in FIG. 16 , method 500includes receiving an observation of motion at step 502, determiningwhether any recursive state estimators are active at step 504, if so,determining whether any active recursive state estimators are compatiblewith the observation at step 506, and if so, updating the applicablerecursive state estimators at step 508. If no recursive state estimatorsare determined to be active at step 504, or if no active recursive stateestimators are compatible with the observation, method 500 proceeds togenerating a new recursive state estimator at step 510.

In some embodiments, receiving an observation of motion at step 502 mayinclude processor(s) 142 receiving an observed position, velocity,and/or acceleration of the train from RF subsystem 130, GNSS subsystem150, and/or IMU(s) 146, which may be performed in the manner describedherein in connection with step 402 of method 400.

In some embodiments, determining whether any recursive state estimatorsare active at step 504 may include processor(s) 142 determining whetherany recursive state estimators 192 of recursive state estimator bank 190are tracking the estimated position, velocity, and/or acceleration ofthe train based on one or more previously obtained observations ofmotion.

In some embodiments, determining whether any active recursive stateestimators are compatible with the observation at step 506 may includeprocessor(s) 142 determining if the observation (e.g., an observedposition) is consistent with one or more previous estimations (e.g., apreviously estimated position, velocity, and acceleration) of the activerecursive state estimator(s). As one example, the observed position maybe within a predefined range of positions that would be likely and/orexpected based on a measure of consistency with respect to the previousestimation(s). As another example, the processor(s) may determinewhether the observation would result in a current and/or past estimateviolating other constraints, such as indicating that a position wasobserved using an anchor node beyond the RF visible range of RFsubsystem 130, an observed position is not confined to the geometry ofthe train track, and/or the observed position was received via GNSSsubsystem 150 while outside the RF visible range of any satellites. Asyet another example, the processor(s) may determine whether theobservation is inconsistent with a track segment, track, orientation,and/or direction of travel of one or more previous estimates.

In some embodiments, updating the applicable recursive state estimatorsat step 508 may include processor(s) 142 providing the observation tothe recursive state estimator(s) to update the estimated position,velocity, and/or acceleration tracked by the recursive stateestimator(s), such as described herein in connection with FIG. 14 .

In some embodiments, generating a new recursive state estimator at step510, following determinations that no active recursive state estimatorsare compatible with the observation, may include processor(s) 142executing a new recursive state estimator to track the observation, suchas described herein in connection with FIG. 14 .

FIG. 17 is a diagram of an illustrative computer system on whichembodiments described herein may be implemented. An illustrativeimplementation of a computer system 600 that may be used in connectionwith any of the embodiments of the disclosure provided herein is shownin FIG. 17 . For example, the processes described herein with referenceto FIGS. 9-16 may be implemented using computer system 600. As anotherexample, the computer system 600 may be used to train and/or use any ofthe neural network statistical models described herein. The computersystem 600 may include one or more processors 602 and one or morearticles of manufacture that comprise non-transitory computer-readablestorage media (e.g., memory 604 and one or more non-volatile storagemedia 606). The processor 602 may control writing data to and readingdata from the memory 604 and the non-volatile storage device 606 in anysuitable manner, as the aspects of the disclosure provided herein arenot limited in this respect. To perform any of the functionalitydescribed herein, the processor 602 may execute one or moreprocessor-executable instructions stored in one or more non-transitorycomputer-readable storage media (e.g., the memory 604), which may serveas non-transitory computer-readable storage media storingprocessor-executable instructions for execution by the processor 602.

Having thus described several aspects and embodiments of the technologyset forth in the disclosure, it is to be appreciated that variousalterations, modifications, and improvements will readily occur to thoseskilled in the art. Such alterations, modifications, and improvementsare intended to be within the spirit and scope of the technologydescribed herein. For example, those of ordinary skill in the art willreadily envision a variety of other means and/or structures forperforming the function and/or obtaining the results and/or one or moreof the advantages described herein, and each of such variations and/ormodifications is deemed to be within the scope of the embodimentsdescribed herein. Those skilled in the art will recognize, or be able toascertain using no more than routine experimentation, many equivalentsto the specific embodiments described herein. It is, therefore, to beunderstood that the foregoing embodiments are presented by way ofexample only and that, within the scope of the appended claims andequivalents thereto, inventive embodiments may be practiced otherwisethan as specifically described. In addition, any combination of two ormore features, systems, articles, materials, kits, and/or methodsdescribed herein, if such features, systems, articles, materials, kits,and/or methods are not mutually inconsistent, is included within thescope of the present disclosure.

The above-described embodiments can be implemented in any of numerousways. One or more aspects and embodiments of the present disclosureinvolving the performance of processes or methods may utilize programinstructions executable by a device (e.g., a computer, a processor, orother device) to perform, or control performance of, the processes ormethods. In this respect, various inventive concepts may be embodied asa computer readable storage medium (or multiple computer readablestorage media) (e.g., a computer memory, one or more floppy discs,compact discs, optical discs, magnetic tapes, flash memories, circuitconfigurations in Field Programmable Gate Arrays or other semiconductordevices, or other tangible computer storage medium) encoded with one ormore programs that, when executed on one or more computers or otherprocessors, perform methods that implement one or more of the variousembodiments described above. The computer readable medium or media canbe transportable, such that the program or programs stored thereon canbe loaded onto one or more different computers or other processors toimplement various ones of the aspects described above. In someembodiments, computer readable media may be non-transitory media.

The terms “program” or “software” are used herein in a generic sense torefer to any type of computer code or set of computer-executableinstructions that can be employed to program a computer or otherprocessor to implement various aspects as described above. Additionally,it should be appreciated that according to one aspect, one or morecomputer programs that when executed perform methods of the presentdisclosure need not reside on a single computer or processor, but may bedistributed in a modular fashion among a number of different computersor processors to implement various aspects of the present disclosure.

Computer-executable instructions may be in many forms, such as programmodules, executed by one or more computers or other devices. Generally,program modules include routines, programs, objects, components, datastructures, etc. that perform particular tasks or implement particularabstract data types. Typically the functionality of the program modulesmay be combined or distributed as desired in various embodiments.

Also, data structures may be stored in computer-readable media in anysuitable form. For simplicity of illustration, data structures may beshown to have fields that are related through location in the datastructure. Such relationships may likewise be achieved by assigningstorage for the fields with locations in a computer-readable medium thatconvey relationship between the fields. However, any suitable mechanismmay be used to establish a relationship between information in fields ofa data structure, including through the use of pointers, tags or othermechanisms that establish relationship between data elements.

When implemented in software, the software code can be executed on anysuitable processor or collection of processors, whether provided in asingle computer or distributed among multiple computers.

Further, it should be appreciated that a computer may be embodied in anyof a number of forms, such as a rack-mounted computer, a desktopcomputer, a laptop computer, or a tablet computer, as non-limitingexamples. Additionally, a computer may be embedded in a device notgenerally regarded as a computer but with suitable processingcapabilities, including a Personal Digital Assistant (PDA), a smartphoneor any other suitable portable or fixed electronic device.

Also, a computer may have one or more input and output devices. Thesedevices can be used, among other things, to present a user interface.Examples of output devices that can be used to provide a user interfaceinclude printers or display screens for visual presentation of outputand speakers or other sound generating devices for audible presentationof output. Examples of input devices that can be used for a userinterface include keyboards, and pointing devices, such as mice, touchpads, and digitizing tablets. As another example, a computer may receiveinput information through speech recognition or in other audibleformats.

Such computers may be interconnected by one or more networks in anysuitable form, including a local area network or a wide area network,such as an enterprise network, and intelligent network (IN) or theInternet. Such networks may be based on any suitable technology and mayoperate according to any suitable protocol and may include wirelessnetworks, wired networks or fiber optic networks.

Also, as described, some aspects may be embodied as one or more methods.The acts performed as part of the method may be ordered in any suitableway. Accordingly, embodiments may be constructed in which acts areperformed in an order different than illustrated, which may includeperforming some acts simultaneously, even though shown as sequentialacts in illustrative embodiments.

All definitions, as defined and used herein, should be understood tocontrol over dictionary definitions, definitions in documentsincorporated by reference, and/or ordinary meanings of the definedterms.

The indefinite articles “a” and “an,” as used herein in thespecification and in the claims, unless clearly indicated to thecontrary, should be understood to mean “at least one.”

The phrase “and/or,” as used herein in the specification and in theclaims, should be understood to mean “either or both” of the elements soconjoined, i.e., elements that are conjunctively present in some casesand disjunctively present in other cases. Multiple elements listed with“and/or” should be construed in the same fashion, i.e., “one or more” ofthe elements so conjoined. Other elements may optionally be presentother than the elements specifically identified by the “and/or” clause,whether related or unrelated to those elements specifically identified.Thus, as a non-limiting example, a reference to “A and/or B”, when usedin conjunction with open-ended language such as “comprising” can refer,in one embodiment, to A only (optionally including elements other thanB); in another embodiment, to B only (optionally including elementsother than A); in yet another embodiment, to both A and B (optionallyincluding other elements); etc.

As used herein in the specification and in the claims, the phrase “atleast one,” in reference to a list of one or more elements, should beunderstood to mean at least one element selected from any one or more ofthe elements in the list of elements, but not necessarily including atleast one of each and every element specifically listed within the listof elements and not excluding any combinations of elements in the listof elements. This definition also allows that elements may optionally bepresent other than the elements specifically identified within the listof elements to which the phrase “at least one” refers, whether relatedor unrelated to those elements specifically identified. Thus, as anon-limiting example, “at least one of A and B” (or, equivalently, “atleast one of A or B,” or, equivalently “at least one of A and/or B”) canrefer, in one embodiment, to at least one, optionally including morethan one, A, with no B present (and optionally including elements otherthan B); in another embodiment, to at least one, optionally includingmore than one, B, with no A present (and optionally including elementsother than A); in yet another embodiment, to at least one, optionallyincluding more than one, A, and at least one, optionally including morethan one, B (and optionally including other elements); etc.

In the claims, as well as in the specification above, all transitionalphrases such as “comprising,” “including,” “carrying,” “having,”“containing,” “involving,” “holding,” “composed of,” and the like are tobe understood to be open-ended, i.e., to mean including but not limitedto. Only the transitional phrases “consisting of” and “consistingessentially of” shall be closed or semi-closed transitional phrases,respectively.

The terms “approximately” and “about” may be used to mean within ±20% ofa target value in some embodiments, within ±10% of a target value insome embodiments, within ±5% of a target value in some embodiments,within ±2% of a target value in some embodiments. The terms“approximately” and “about” may include the target value.

What is claimed is:
 1. A system for determining a position of a traintraveling along a train track, the system comprising: at least oneultra-wideband (UWB) antenna configured to transmit and/or receive atleast one UWB signal to and/or from at least one anchor node positionedproximate the train track; at least one global navigation satellitesystem (GNSS) receiver configured to receive at least one GNSS signal;and at least one processor configured to: determine at least one firstobserved position of the train along the train track using an arrivaltime of the at least one UWB signal; determine at least one secondobserved position of the train along the train track using at least oneGNSS signal received by the at least one GNSS receiver; and determine anestimated position of the train along the train track using the at leastone first observed position and the at least one second observedposition of the train along the track.
 2. The system of claim 1, whereinthe at least one processor is further configured to determine at leastone distance between the at least one UWB antenna and the at least oneanchor node using the arrival time of the at least one UWB signal. 3.The system of claim 2, wherein: the at least one UWB antenna isconfigured to transmit a first UWB signal of the at least one UWB signalto the at least one anchor node; the at least one UWB antenna isconfigured to receive a second UWB signal of the at least one UWB signalfrom the at least one anchor node; and the at least one processor isconfigured to determine the at least one distance using a transmit timeof the first UWB signal and an arrival time of the second UWB signal. 4.The system of claim 1, further comprising: at least one inertialmeasurement unit (IMU) configured to generate IMU data responsive tomovement of the train along the train track, wherein the at least oneprocessor is configured to determine the estimated position of the trainalong the train track further by using the IMU data.
 5. The system ofclaim 1, wherein the at least one processor is configured to determinethe at least one first observed position of the train further bydetermining whether the at least one first observed position is RFvisible to and/or from the at least one UWB antenna and/or the at leastone GNSS receiver.
 6. The system of claim 1, wherein the at least oneprocessor is configured to determine the estimated position of the trainfurther using consistency between the at least one first observedposition and the at least one second observed position.
 7. The system ofclaim 1, wherein the at least one processor is further configured tointegrate the first and second observed positions with informationspecifying a geometry of the train track and to determine the estimatedposition further using the information specifying the geometry of thetrain track.
 8. A method of determining a position of a train travelingalong a train track, the method comprising: transmitting and/orreceiving, using at least one ultra-wideband (UWB) antenna, at least oneUWB signal to and/or from at least one anchor node positioned proximatethe train track; receiving, using at least one global navigationsatellite system (GNSS) receiver, at least one GNSS signal; determining,by at least one processor, at least one first observed position of thetrain along the train track using an arrival time of the at least oneUWB signal; determining, by the at least one processor, at least onesecond observed position of the train along the train track using atleast one GNSS signal received by the at least one GNSS receiver; anddetermining, by the at least one processor, an estimated position of thetrain along the train track using the at least one first observedposition and the at least one second observed position of the trainalong the track.
 9. The method of claim 8, further comprisingdetermining, by the at least one processor, at least one distancebetween the at least one UWB antenna and the at least one anchor nodeusing the arrival time of the at least one UWB signal.
 10. The method ofclaim 9, further comprising: transmitting, using the at least one UWBantenna, a first UWB signal of the at least one UWB signal to the atleast one anchor node; and receiving, using the at least one UWBantenna, a second UWB signal of the at least one UWB signal from the atleast one anchor node, wherein determining the at least one distancecomprises using a transmit time of the first UWB signal and an arrivaltime of the second UWB signal.
 11. The method of claim 8, furthercomprising: generating, using at least one inertial measurement unit(IMU), IMU data responsive to movement of the train along the traintrack, wherein determining the estimated position of the train along thetrain track further comprises using the IMU data.
 12. The method ofclaim 8, wherein determining the at least one first observed position ofthe train further comprises determining whether the at least one firstobserved position is RF visible to and/or from the at least one UWBantenna and/or the at least one GNSS receiver.
 13. The method of claim8, wherein determining the estimated position of the train furthercomprises using consistency between the at least one first observedposition and the at least one second observed position.
 14. The methodof claim 8, further comprising: integrating, by the at least oneprocessor, the first and second observed positions with informationspecifying a geometry of the train track, wherein determining theestimated position further comprises using the information specifyingthe geometry of the train track.
 15. A non-transitory computer-readablemedium having stored thereon instructions that, when executed by atleast one processor, cause the at least one processor to perform amethod of determining a position of a train traveling along a traintrack, the method comprising: transmitting and/or receiving, using atleast one ultra-wideband (UWB) antenna, at least one UWB signal toand/or from at least one anchor node positioned proximate the traintrack; receiving, using at least one global navigation satellite system(GNSS) receiver, at least one GNSS signal; determining, by the at leastone processor, at least one first observed position of the train alongthe train track using an arrival time of the at least one UWB signal;determining, by the at least one processor, at least one second observedposition of the train along the train track using at least one GNSSsignal received by the at least one GNSS receiver; and determining, bythe at least one processor, an estimated position of the train along thetrain track using the at least one first observed position and the atleast one second observed position of the train along the track.
 16. Thenon-transitory computer-readable medium of claim 15, wherein the methodfurther comprises determining, by the at least one processor, at leastone distance between the at least one UWB antenna and the at least oneanchor node using the arrival time of the at least one UWB signal. 17.The non-transitory computer-readable medium of claim 16, wherein themethod further comprises: transmitting, using the at least one UWBantenna, a first UWB signal of the at least one UWB signal to the atleast one anchor node; and receiving, using the at least one UWBantenna, a second UWB signal of the at least one UWB signal from the atleast one anchor node, wherein determining the at least one distancecomprises using a transmit time of the first UWB signal and an arrivaltime of the second UWB signal.
 18. The non-transitory computer-readablemedium of claim 15, wherein the method further comprises: generating,using at least one inertial measurement unit (IMU), IMU data responsiveto movement of the train along the train track, wherein determining theestimated position of the train along the train track further comprisesusing the IMU data.
 19. The non-transitory computer-readable medium ofclaim 15, wherein determining the at least one first observed positionof the train further comprises determining whether the at least onefirst observed position is RF visible to and/or from the at least oneUWB antenna and/or the at least one GNSS receiver.
 20. Thenon-transitory computer-readable medium of claim 15, wherein determiningthe estimated position of the train further comprises using consistencybetween the at least one first observed position and the at least onesecond observed position.